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

我继承了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级讲师

répondre à tous(5)
大家讲道理

Coupez un point d'arrêt et voyez si myButton est créé lorsque vous ajoutezTarget. A-t-il de la mémoire ?

小葫芦

Je vous suggère de créer un bloc et de l'appeler lorsque vous cliquez dessus

伊谢尔伦

Vous devez vous assurer que myButton est initialisé.

阿神

Je n'ai jamais essayé de transmettre des événements comme celui-ci. Il est recommandé d'utiliser bloquer/déléguer/notifier. Personnellement, je pense que l'objet n'est pas créé. Vous pouvez l'imprimer pour voir si l'objet contrôleur existe.

阿神

Il se peut que le pied de votre tableview n'ait pas de hauteur, vous ne pouvez donc pas le voir clairement.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal