2013-12-16 58 views
0

我在我的UITableview单元格中添加了自定义UIButtons。
使用下面的代码: -UITableview单元格中的按钮不会在快速点击中突出显示

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]; 

的问题是,当我尝试点击单元格按钮,它不会突出显示,以快速触摸或者如果我点击快速或连续触摸彼此等之后,但在我点击稳定和更有力(不长按),它突出显示。

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

回答

0

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

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

这是不理想,但它适合我的细胞。我不使用UITableViewCell中的scrollview,所以我可以做这个破解。如果你需要scrollview的功能,那么这可能会给你带来破坏。

+1

这是一个非常脆弱的问题。它依赖于在UIKit中操作私有类。坏的魔咒。 –

+0

还有一个可怕的内存泄漏,动画桌面单元通过混合功能修复。在内部代码被修复之前,这些脆弱的修复都是可以完成的。或者你可以处理iOS7的新“改进”行为。 – Putz1103

+0

@ Putz1103,嗨thanx为你的帮助,但它仍然没有任何区别。 – ViruMax

相关问题