カスタムUIView内にUIButtonを配置しましたが、ボタンはタッチイベントを受け取りません(強調表示された状態にならないため、ハンドラー内でタッチを接続できないという問題ではありません)。私はそれをInterface BuilderのXIBに入れようとしましたが、プログラムでUIButtonをUIViewに別々に追加しようとしましたが、どちらもうまくいきませんでした。私のビューはすべてUIScrollView内にあるため、最初にUIScrollViewがそれらをブロックしている可能性があるため、カスタムビューをUIScrollViewに追加するのとまったく同じ方法でプログラムでボタンを追加し、ボタンが機能したため、UIScrollViewの可能性を排除できました原因となります。私のビューの階層は次のようになります。
ボタンは画像ビューの上にあり、前面レイヤーがボタンを完全に占有していないため、ボタンを物理的に操作しない理由はありません。カスタム ビューのコード側では、ビューを次のように作成しています。
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
UIView *sub = [[[NSBundle mainBundle] loadNibNamed:@"ProfileView" owner:self options:nil] objectAtIndex:0];
[self addSubview:sub];
[sub setUserInteractionEnabled:YES];
[self setUserInteractionEnabled:YES];
CALayer *layer = sub.layer;
layer.masksToBounds = YES;
layer.borderWidth = 5.0;
layer.borderColor = [UIColor whiteColor].CGColor;
layer.cornerRadius = 30.0;
/*layer.shadowOffset = CGSizeZero;
layer.shadowRadius = 20.0;
layer.shadowColor = [[UIColor blackColor] CGColor];
layer.shadowOpacity = 0.8;
*/
}
return self;
}
のすべての組み合わせを試しましsetUserInteractionsEnabled
たが、うまくいきませんでした。(はい、Interface Builder でもチェックするように設定します)。また、「canBecomeFirstResponder」をオーバーライドして「YES」を返すようにする必要がある、同様の問題を伴う別の質問を読みました。また、それも行いました。しかし、問題は解決せず、ボタンをクリックできません。ボタンに特別なプロパティや設定を与えていません。これは単なる通常のものです。ビュー内の他のオブジェクト (下のラベル、ボタンの後ろの画像ビューなど) は問題なく正常に動作しています。ここで何が間違っている可能性がありますか?
ありがとう、
できる。
更新:ここに問題の簡単な再現があります: https://dl.dropbox.com/u/79632924/Test.zip 実行してボタンをクリックしてみてください。