ios - 继承UIView的类里创建一个tableView,然而对应的tableFooterView不能响应事件是为什么?
PHP中文网
PHP中文网 2017-04-18 09:06:05
0
5
645

我继承了UIView的类里创建了一个tableView,当我在这个UIView里设置按钮的事件能成功:

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{
    self.customView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.bounds.size.width, 80)];
    self.myButton = [[UIButton alloc] initWithFrame:CGRectMake(100, 20, 100, 40)];
    self.myButton.backgroundColor = [UIColor redColor];
    [self.myButton addTarget:self action:@selector(doButonAction) forControlEvents:UIControlEventTouchUpInside];
    [self.customView addSubview:self.myButton];
    
    return self.customView;
}

但是,我把按钮公开,然后再controller里设置事件就不行。这是什么原因?

View:
@property (strong, nonatomic) UIButton *myButton;


controller:

CustomView *cv = [[CustomView alloc] initWithFrame:self.view.bounds ];
[cv.myButton addTarget:self action:@selector(doButtonAction11) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:cv];
PHP中文网
PHP中文网

认证0级讲师

全員に返信(5)
大家讲道理

ブレークポイントをカットし、Target を追加したときに myButton が作成されるかどうかを確認します。メモリがあるかどうかを確認します。

いいねを押す +0
小葫芦

ブロックを作成し、クリックされたときに呼び出すことをお勧めします

いいねを押す +0
伊谢尔伦

myButton が初期化されていることを確認する必要があります。

いいねを押す +0
阿神

このようなイベントを渡してみたことはありません。ブロック/デリゲート/通知を使用することをお勧めします。個人的には、オブジェクトは作成されていないと思います。これを印刷して、コントローラー オブジェクトが存在するかどうかを確認できます。

いいねを押す +0
阿神

テーブルビューの足元に高さがないため、はっきりと見えない可能性があります。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート