我也有同样的问题
Custom buttons in XIB used as Custom UITableViewCell don't respond to taps (ios7)
基本上,UITableViewCell中的按钮不再起作用。
它过去在iOS6中运行得很好,但在iOS7中就不行了。
我看到两个人有相同的解决方案
[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
发布于 2013-10-20 17:32:32
从iOS7开始,contentView不再是UITableViewCell的直接子视图。
发布于 2013-10-20 01:20:54
我不确定这是否对你有帮助,但我发现我的问题与你引用的帖子中描述的问题有关,但我还有一块拼图。contentView.userInterActionEnabled = NO对我不起作用,原因和你描述的一样。
在我的应用程序中,我动态地调整表格视图单元格的大小,在运行时根据单元格中的内容改变它们的高度。这给我带来了一个单独的问题,那就是单元格的大小正在被调整,,但是由于某种原因,contentView没有被调整大小。,所以我的按钮是可见的,但是在contentView的边界之外,因此不能用于用户交互。
我最终发现它的方式是将我的contentView的背景颜色设置为不同的颜色,我终于发现它太短了。
我希望这能帮助你,或者至少给你一些新的东西来检查。
https://stackoverflow.com/questions/19290438
复制相似问题