我在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];
问题是,当我尝试单击单元格中的按钮时,它不会突出显示为快速触摸,或者如果我快速或连续点击一个接一个等等。但是当我稳定地点击并且更有力(不长按) ),它会突出显示。
重要的是在两种情况下都会调用相应的动作方法,即慢速点击和快速点击。
答案 0 :(得分:0)
这是iOS7的新问题。现在UITableviewCell的视图层次结构中存在滚动视图。该滚动视图检查在按钮获得触地事件之前是否需要接管触摸操作。有一个hack修复,在你的单元格初始化中添加这段代码:
for (id obj in self.subviews)
{
if ([NSStringFromClass([obj class]) isEqualToString:@"UITableViewCellScrollView"])
{
UIScrollView *scroll = (UIScrollView *) obj;
scroll.delaysContentTouches = NO;
break;
}
}
这不太理想,但它适用于我的细胞。我不使用UITableViewCell内的scrollview,所以我可以做这个hack。如果你需要scrollview的功能,那么这可能会破坏你的东西。