小编Bjö*_*ser的帖子

如何避免在UITableViewCell上滑动删除调用setEditing

我知道,当我实现tableView:willBeginEditingRowAtIndexPath:并且tableView:didEndEditingRowAtIndexPath:,刷卡到删除不会调用setEditing:animated:UITableViewController(作为代表UITableView).

我有一个自定义UITableViewCell实现,在进入编辑模式时执行一些UI重新排列.我想要聪明并setEditing:animated:在表视图单元实现本身实现这些更改(这显然是有意义的).

但是,当滑动删除时,我仍然会setEditing:animated:在我的表视图单元格实现中调用.我没有参数告诉我,我正在刷卡.调用堆栈也没有显示我自己的方法,这些方法可以让我有机会做某事.它显示了setEditing:animated被称为UITableView.唯一显而易见的是,它没有在委托中调用(在这种情况下我的控制器).

当然,我可以在单元格中设置一个标志tableView:willBeginEditingRowAtIndexPath:,告诉它下一个setEditing调用是刷卡,但这听起来不是好风格.

编辑:它甚至不起作用,因为它不能保证tableView:didEndEditingRowAtIndexPath:被调用,所以我不能将标志设置回来.

任何想法如何优雅地解决这个问题?

iphone uitableview swipe ios

16
推荐指数
2
解决办法
8993
查看次数

用于在取消时删除UITableView单元格的UIActionSheet保持显示按下删除按钮

在表视图中删除行时,我想显示一个在某些情况下要求确认的操作表.当操作表单以"是"(破坏性操作)回答时,我删除了表格行,一切都很好.但是当按下取消时,我仍然看到处于按下状态的删除按钮.

我在tableView:commitEditingStyle删除时所做的是:

BlockBasedActionSheet *askSheet =
    [[BlockBasedActionSheet alloc] 
          initWithTitle:@"Delete entry?"
      cancelButtonTitle:@"No"
 destructiveButtonTitle:@"Yes, delete child also records"
           cancelAction:^{
               UITableViewCell *cell = [self tableView:tableView cellForRowAtIndexPath:indexPath];
               if (cell.showingDeleteConfirmation) {
                   cell.editing = NO;
                   cell.editingAccessoryView = nil;
                   cell.editing = YES;
               }
           }
  destructiveAction:deleteBlock];
[askSheet showInView:self.view];
[askSheet release];
Run Code Online (Sandbox Code Playgroud)

同样奇怪的是,单元格的属性showingDeleteConfirmationNO,但删除按钮仍然可见.

我正在使用自制的基于块的操作表实现.也许存在错误,尽管我似乎在取消块中得到了正确的单元格.

那么,如何将"删除"按钮状态重置为"未按下"并将其删除,并将圆形删除按钮恢复为水平,就像我点击屏幕上的某个位置时一样?

助手班BlockBasedActionSheet.h:

@interface BlockBasedActionSheet : UIActionSheet<UIActionSheetDelegate> {
}

@property (copy) void (^cancelBlock)();
@property (copy) void (^destructiveBlock)();

- (id)initWithTitle:(NSString *)title cancelButtonTitle:(NSString *)cancelButtonTitle destructiveButtonTitle:(NSString *)destructiveButtonTitle cancelAction:(void (^)())cancelBlock destructiveAction:(void (^)())destructiveBlock;

@end
Run Code Online (Sandbox Code Playgroud)

实施文件 …

iphone uitableview ios

8
推荐指数
1
解决办法
3326
查看次数

使用JSF EL中的整数键访问映射

在一个支持bean中,我定义了一个Map<Integer,String>属性.当试图从xhtml文件中的EL访问地图时,我得不到任何回报.

<h:outputLabel value="#{bean.myMap[0]}">
Run Code Online (Sandbox Code Playgroud)

不返回键0的值.使用String键可以工作.

它适用于a List<String>,但我希望Map有一些稀疏数组(并非所有索引都有值)

jsf el jsf-2

6
推荐指数
1
解决办法
5703
查看次数

如何制作UIFont粗体或斜体?

有了UILabel任何字体,我怎么能知道它是否已经是粗体?或者我怎样才能使它变得大胆?在CSS中,我有一个font-weight属性.我想有类似的东西.

到目前为止我发现的一切都是你必须设置正确的字体名称.但是,这是不可靠的.大胆的版本CochinCochin-Bold,但大胆的版本ArialMT是不是ArialMT-Bold,但是Arial-BoldMT,因此它显然不足以追加-Bold.(自定义字体的粗体版本也可能有完全不同的名称).

我能做的是找到我给定字体系列的所有字体.

__block UIFont *font = myLabel.font;
[[UIFont fontNamesForFamilyName:font.familyName] enumerateObjectsUsingBlock:^(NSString *fontName, NSUInteger idx, BOOL *stop) {
    if ([fontName rangeOfString:@"bold" options:NSCaseInsensitiveSearch].location != NSNotFound) {
        font = [UIFont fontWithName:fontName size:font.pointSize];
        *stop = YES;
    }
}];
myLabel.font = font;
Run Code Online (Sandbox Code Playgroud)

但这并不可靠.我可以很容易地得到一个BoldItalic版本.我可以改进我的检查以避免这种情况,但这不是一个很好的解决方案.

也许CoreText可以在这里提供帮助?

iphone ios

4
推荐指数
1
解决办法
2947
查看次数

预检OPTIONS对SOAP服务的请求不起作用

我想做的事:使用带有jQuery Soap插件的jQuery(由Remy Blom提供)从JavaScript调用跨域SOAP-Service.(也就是说,我$.soap();用JavaScript 调用)

我做了什么:服务器端的CORS设置(CXF)正在工作(使用org.eclipse.jetty.servlets.CrossOriginFilter),所以答案中出现以下内容:

Access-Control-Allow-Head...    X-Requested-With,Content-Type,Accept,Origin
Access-Control-Allow-Meth...    GET,POST,OPTIONS,HEAD
Access-Control-Allow-Orig...    http://localhost:8082
Content-Type                    application/soap+xml;charset=UTF-8
Run Code Online (Sandbox Code Playgroud)

缺少的内容:Firefox和Chrome OPTIONSPOST请求SOAP调用之前发送预检请求.显然,SOAP不允许使用OPTIONS动词.

它不适用于SoapUI(5.0)以及CXF(2.7.7).甚至在org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor第130ff行的评论中都说明了这一点:

/*
 * Reject OPTIONS, and any other noise that is not allowed in SOAP.
 */
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是:如何修改我的SOAP服务实现(使用CXF),以便OPTIONS请求成功返回?

javascript jquery soap cxf cors

3
推荐指数
1
解决办法
1137
查看次数

标签 统计

ios ×3

iphone ×3

uitableview ×2

cors ×1

cxf ×1

el ×1

javascript ×1

jquery ×1

jsf ×1

jsf-2 ×1

soap ×1

swipe ×1