Ios UITableview单元格中的按钮不';快速点击不会突出显示

Ios UITableview单元格中的按钮不';快速点击不会突出显示,ios,objective-c,uitableview,uibutton,Ios,Objective C,Uitableview,Uibutton,我在UITableview单元格中添加了自定义UIButtons使用以下代码:- UIButton *btnOtherCount=[UIButton buttonWithType:UIButtonTypeCustom]; btnOtherCount.frame=CGRectMake(577, 43, 110, 60); [btnOtherCount setBackgroundImage:[UIImage imageNamed:@"orange.png"] forState:UI

我在UITableview单元格中添加了自定义UIButtons
使用以下代码:-

UIButton *btnOtherCount=[UIButton buttonWithType:UIButtonTypeCustom];

    btnOtherCount.frame=CGRectMake(577, 43, 110, 60);
    [btnOtherCount setBackgroundImage:[UIImage imageNamed:@"orange.png"] forState:UIControlStateNormal];
    [btnOtherCount setTitle:@" Nonfiction - Other - 0" forState:UIControlStateNormal];
    btnOtherCount.titleLabel.lineBreakMode=NSLineBreakByWordWrapping;
    btnOtherCount.titleLabel.textAlignment = NSTextAlignmentCenter;
    btnOtherCount.titleLabel.font=[UIFont boldSystemFontOfSize:13.0f];
    [btnOtherCount setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    [btnOtherCount addTarget:self action:@selector(done:) forControlEvents:UIControlEventTouchDown];
    [cell.contentView addSubview:btnOtherCount];
问题是,当我尝试单击单元格中的按钮时,它不会在快速触摸时突出显示,或者如果我一个接一个地单击快速或连续触摸等,但当我稳定地、更有力地单击(而不是长按)时,它会突出显示


重要的是,在慢速单击和快速单击两种情况下,都会调用相应的操作方法。

这是iOS7的一个新问题。UITableviewCell的视图层次结构中现在有一个scrollview。该滚动视图检查在按钮获得触地事件之前是否需要接管触地操作。对此有一个黑客修复程序,在您的单元初始化中添加以下代码:

for (id obj in self.subviews)
{
    if ([NSStringFromClass([obj class]) isEqualToString:@"UITableViewCellScrollView"])
    {
        UIScrollView *scroll = (UIScrollView *) obj;
        scroll.delaysContentTouches = NO;
        break;
    }
}

这并不理想,但对我的细胞有效。我不在UITableViewCell中使用scrollview,所以我可以进行此攻击。如果您需要scrollview的功能,那么这可能会破坏您的功能。

这是一个非常脆弱的修复。它依赖于在UIKit中操纵私有类。坏魔咒。还有一个可怕的内存泄漏与动画tablecells是由swizzling函数修复。在内部代码修复之前,这些脆弱的修复是所有可以做的。或者你可以处理iOS7新的“改进”行为。@Putz1103,hey thanx需要你的帮助,但它仍然没有任何区别。在模拟器上看起来没有区别,但在设备上它可以工作。如果在设备上,它仍然不工作,那么您就没有什么其他可以做的了。这是内置的iOS7行为,除了这些hack实现之外无法处理。