1

カスタムビューにアクションを追加するにはどうすればよいですか?UIButtonのアクションと同様に、IntefaceBuilderで接続できます。オブジェクトではないため、以下のようなSELを使用できません。何を使用しますか?

 @property(nonatomic, weak) IBOutlet SEL action;
4

1 に答える 1

1

カスタム オブジェクトを UIControl のサブクラス (UIView のサブクラス) にします。次に、すべてのターゲット/アクションメソッドを取得します...これをコードで実行している場合、探索するものは

– addTarget:action:forControlEvents:

カスタム UIControl オブジェクトを作成すると、ストーリーボードにカスタム ビューをドラッグして、そのカスタム クラスを customControl に設定できます。次に、あたかもボタンであるかのように、IBAction リンクを viewController にドラッグできます。

コードで作成する方法は次のとおりです...

- (void)viewDidLoad
{
    [super viewDidLoad];
    UIControl* customControl = [[UIControl alloc]initWithFrame:CGRectMake(20, 20, 200, 200)];
    customControl.backgroundColor = [UIColor redColor];
    [customControl addTarget:self 
                      action:@selector(customAction:) 
            forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:customControl];
}

- (void)customAction:(id)sender
{
    NSLog (@"touched");
}
于 2013-01-31T18:05:39.283 に答える