我有完全一样的问题
用作自定义 UITableViewCell 的 XIB 中的自定义按钮不响应点击(ios7)
基本上 UITableViewCell 中的按钮不再起作用。
它曾经在 IOS 6 中运行良好。在 IOS 7 中不再适用。
我看到 2 人有相同的解决方案
[cell.contentView setUserInteractionEnabled: NO]
但是,该解决方案根本没有意义。
这些按钮显然是 cell.contentView 的子视图。如果我们将 userinteractionenabled 设置为 no,它应该禁用与 cell.contentView 的所有子视图的用户交互。那么这到底是怎么回事呢?
实际上,IOS 7 到 IOS 6 之间发生了哪些变化,所以这个问题首先存在。
注意:它并没有真正解决我的问题。
正如我所怀疑的那样, UITableViewCell 中的按钮确实是 contentView 的子视图
2013-10-11 13:07:04.946 [15131:a0b] self: <BGCatalogTableCellForCatalog: 0x12e12d20; baseClass = UITableViewCell; frame = (0 0; 320 220); layer = <CALayer: 0x12e12c70>>
2013-10-11 13:07:04.947 [15131:a0b] self.contentView: <UITableViewCellContentView: 0x12e12600; frame = (0 0; 320 220); gestureRecognizers = <NSArray: 0x12e12440>; layer = <CALayer: 0x12e125d0>>
2013-10-11 13:07:04.947 [15131:a0b] self.btnBrochureButton: <UIButton: 0x12e100b0; frame = (0 0; 160 219); opaque = NO; autoresize = RM+TM+BM; layer = <CALayer: 0x12e102c0>>
2013-10-11 13:07:04.948 [15131:a0b] self.btnBrochureButton.superview: <UITableViewCellContentView: 0x12e12600; frame = (0 0; 320 220); gestureRecognizers = <NSArray: 0x12e12440>; layer = <CALayer: 0x12e125d0>>
2013-10-11 13:07:04.948 [15131:a0b] self.btnBrochureButton.superview.superview: <UITableViewCellScrollView: 0x12e12920; frame = (0 0; 320 220); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x12e12840>; layer = <CALayer: 0x12e128f0>; contentOffset: {0, 0}>
2013-10-11 13:07:04.949 [15131:a0b] self.btnBrochureButton.superview.superview.superview: <BGCatalogTableCellForCatalog: 0x12e12d20; baseClass = UITableViewCell; frame = (0 0; 320 220); layer = <CALayer: 0x12e12c70>>
2013-10-11 13:07:04.949 [15131:a0b] <UIButton: 0x12e100b0; frame = (0 0; 160 219); opaque = NO; autoresize = RM+TM+BM; layer = <CALayer: 0x12e102c0>>
所以 btnBrochureButton.superview 和 self.contentView 都是 0x12e12600