UIButton * newButton = [UIButton buttonWithType:UIButtonTypeCustom];
newButton.imageObject= someImage;
UIImage * imagePut = someImage.imageBlob;
imagePut = [imagePut roundedCornerImage:20 borderSize:0];
[newButton setImage:imagePut forState:UIControlStateNormal];
newButton.frame= CGRectMake(column * self.distanceBetweenButton +marginBetweenButtons, row *self.distanceBetweenButton+marginBetweenButtons, self.sizeOfButtons, self.sizeOfButtons);
newButton.backgroundColor = [UIColor clearColor];
PO(@(newButton.userInteractionEnabled));
newButton.userInteractionEnabled=YES;
[newButton addTarget:self action:@selector(someImageGotPressed) forControlEvents:UIControlEventTouchUpInside];
PO(@([newButton allControlEvents]));
PO(newButton.allTargets);
[self.collectionOfButton addObject:newButton];
シンプルなボタン。問題は someImageGotPressed が呼び出されないことです。
もちろん、newButton にはデフォルトで userInteractionEnabled があります。ただし、 someImageGotPressed はまだ呼び出されていません。
ターゲットは UITableViewCell です。ユーザーがボタンを操作することを期待しているため、その uiTableViewCell の userinteractionenabled をオフにしました。
私はそれをオンに戻し、それは動作します。
しかし、何かが私を困惑させます。addTarget のターゲットは何でも構いません。UIView または UIViewController である必要さえありません。では、なぜターゲットの userInteractionEnabled がまったく問題になるのでしょうか?
これは、 UITableViewCell がボタンのスーパービューであり、ビューの userInteractionEnabled をオフにすると、スーパービューまたはそのようなものすべてでオフになるためですか?