0

これは私のコードです

UIImageView *bgDetails = [[UIImageView alloc] initWithFrame: CGRectMake(0, 20, 320, 47)];
bgDetails.image = [UIImage imageNamed:@"bgDetail"];

UIButton *btnLike = [UIButton buttonWithType:UIButtonTypeCustom];
[btnLike setBackgroundImage:[UIImage imageNamed:@"38_38"] forState:UIControlStateNormal];
btnLike.frame = CGRectMake(278, 4.5f, 37, 37);
[btnLike addTarget:self action:@selector(doLike:) forControlEvents:UIControlEventTouchUpInside];

[bgDetails addSubview:btnLike];
[cell.contentView addSubview:bgDetails];

ただし、メソッドbtnLikeは呼び出しません。doLike私を助けてください!ありがとう!

4

1 に答える 1

2

ここで 2 つの問題が考えられます。最初のものはこれです:それが単なるタイプミスかどうかはわかりませんが、あなたは書いています

action:@selector(doLike:)

doLikeしかし、後で、末尾のコロンがない (つまり、引数を取らない)セレクターについて文句を言います。これが問題である場合は、どちらかを変更して、2 つのセレクター名が一致するように修正することができます (どちらも一貫してdoLike:orである必要があります)。doLike

私が見る他のエラーは、ボタンを画像ビューのサブビューとして追加していることです。UIImageViewデフォルトではユーザー操作がオフになっているため、ユーザーのタッチに反応するには、そのuserInteractionEnabledプロパティを有効に設定する必要があります。

bgDetails.userInteractionEnabled = YES;
于 2013-01-05T17:29:16.133 に答える