1

UIImageViewいつ触れられるかを知る必要があるサブクラスがあります。(以下の完全なコード。)私はこれこれの両方を見つけて読んだ。それらはやや有用でしたが、どちらも実際には機能しませんでした。メソッドが呼び出されていないだけでなくtouchesBegan:withEvent:、画像の後ろにあるボタンが押されています。

これが私のコードです:

ヘッダーファイル:

@interface MathKeyboardKey : UIImageView
{

}

@end

実装ファイル:

@implementation MathKeyboardKey

- (id)initWithImage:(UIImage *)image
{
    if (self = [super initWithImage:image])
    {
        //init here
    }
    return self;
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    NSLog(@"-- I AM TOUCHED --");
}

- (void)dealloc
{
    [super dealloc];
}

@end  

発信コード:

{
    self.userInteractionEnabled = NO;

    mathKeyboardAccess = [[MathKeyboardKey alloc] initWithImage:[UIImage imageNamed:@"mathKey.png"]];
    CGRect frm = mathKeyboardAccess.frame;
    frm.origin = CGPointMake(80, 171);
    mathKeyboardAccess.frame = frm;
    mathKeyboardAccess.userInteractionEnabled = YES;
    [self addSubview:mathKeyboardAccess];
}

このビューは、別のビュー()のサブビューとして追加されていMathKeyboardます。スーパービューは別のビュー(システムキーボード)をカバーしているため、ユーザーインタラクションを有効にすることはできません。システムのキーボードビューに追加しようとするMathKeyboardKeyと、表示されません。UIButtonを使用しようとすると、どのビューに配置しても表示されません。

明らかでない場合の質問は、このUIImageViewサブクラスのタッチをどのように検出するかです。

4

1 に答える 1

1
self.userInteractionEnabled = NO;

親ビューのユーザーインタラクションを無効にしたので、子はどのようにインタラクションを受け取ることができますか?この行を削除します。

于 2010-03-03T13:08:09.077 に答える