recherche

Maison  >  Questions et réponses  >  le corps du texte

ios - 继承UIView的类里创建一个tableView,然而对应的tableFooterView不能响应事件是为什么?

我继承了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中文网2889 Il y a quelques jours651

répondre à tous(5)je répondrai

  • 大家讲道理

    大家讲道理2017-04-18 09:08:05

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

    répondre
    0
  • 高洛峰

    高洛峰2017-04-18 09:08:05

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

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:08:05

    Vous devez vous assurer que myButton est initialisé.

    répondre
    0
  • 阿神

    阿神2017-04-18 09:08:05

    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.

    répondre
    0
  • 阿神

    阿神2017-04-18 09:08:05

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

    répondre
    0
  • Annulerrépondre