UITableView上button的点击事件(一)

   在UITableView中添加button,button点击改变背景图片时,发现按下时间短的话,无法改变背景图片,经过一番奋斗,终于找到了原因。
   i OS6的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;

       }

  }

不过,暂时没发现方法2的好处,似乎只要写方法1就可以控制了···

你可能感兴趣的:(Objective-C)