私はまったく同じ問題を抱えています
カスタム 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 です。