UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 180, 180)];
myLabel.backgroundColor = [UIColor greenColor];
[self.view addSubview:myLabel];
UIButton *myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[self addTarget:self action:@selector(show) forControlEvents:UIControlEventTouchDown];
myButton.frame = CGRectMake(80.0, 120.0, 30, 30);
myButton.showsTouchWhenHighlighted = YES;
[self addSubview:myButton];
таким образом кнопка работает (позвоните show:
), но используйте [myLabel addSubview:myButton];
кнопка не работает. не уверен почему?
---------------- РЕДАКТИРОВАТЬ И РЕШЕНИЕ ------------
Спасибо @KennyTM
UILabel по умолчанию не обрабатывает никаких событий. Необходимо установить для свойства userInteractionEnabled
метки значение YES
.
Кроме того, вам лучше не добавлять UIButton поверх UILabel.