Yet another bootstrap theme.

Work·City·Technology 6月 15 2014

阅读此文

iOS7下UITableViewCell中的button无法响应 6月 14 2014

自定义Cell时大部分人都会用xib实现(你不用?iOS8以后的适配您肿么办),但是iOS7时,UITableViewCell的结构发生了变化,在cell(view)之上会有cell.contentView,xib中通过拖拽的控件如button,就会覆盖在contentView之下,随便一搜,各式各样的方案,来看看我的方案。

自定义Cell的Xib在iOS6与iOS7下结构示意图

Cell的Xib

cell_xib

iOS6下cell结构

iOS6_cell

iOS7下cell结构

iOS7_cell

根据立体的图形结构可以发现,iOS7时cell的subviews被置于contentView之下。故button不能接收点击事件。

1
[cell.contentView removeFromSuperview];

这样iOS7下的cell会和iOS6结构一致,button点击正常。

包含button的自定义cell,除去cell的点击、选中效果

实现TableView的Delegate:

- (BOOL)tableView:(UITableView *)tableView     shouldHighlightRowAtIndexPath:(NSIndexPath     *)indexPath{
    return NO;
}

补丁:上面之所以要去掉CellContentView的部分是因为我在创建cell的xib时候拖出的是UIView控件,因为xib对应的类是UITableViewCell的子类,xib加载后会将cellContentView覆盖于xib之上。如果是xib本身是UITableViewCell的话,所有子控件自然都会在contentView内部,就不需要移除contentView即可触发按钮。这个是我的失误,文章也就不改了,就当一个错误示范吧。


原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0
转载分享,请注明出处 http://codingforfun.me

阅读此文