解决办法来自网络,无法获知原作者.
以tableview的Cell为例:
IOS6的UITableViewCell 子视图(subviews)的容器是UITableViewCellContentView IOS7的UITableViewCell 子视图(subviews)的容器是UITableViewCellScrollView 由于IOS7中添加了滑动后出现编辑按钮的操作,所以使用scrollView来处理,UITableViewCellScrollView有对触摸的相应处理,导致按钮的点击效果被屏蔽了,但是点击事件还是在的,所以可以通过在 1.设置tableView.delaysContentTouches = NO; 2.同时在(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath代理方法中对scrollview把延迟触摸设置为NO即可 for (id obj in cell.subviews) { if ([NSStringFromClass([obj class])isEqualToString:@"UITableViewCellScrollView"]) { UIScrollView *scroll = (UIScrollView *) obj; scroll.delaysContentTouches =NO; break; } }
总之:设置ScrollView的delaysContentTouches属性为NO即可.