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];
кнопка не работает. не знаете почему?UIButton на UIScrollView не может работать
---------------- EDIT & РЕШЕНИЕ ------------ Спасибо @KennyTM
UILabel по умолчанию не обрабатывает любые события. Вам необходимо установить свойство userInteractionEnabled
метки на YES
.
Также вам не следует добавлять UIButton на вершине UILabel.
Спасибо, просто подумайте, что они все подклассы UIView. –
@william: UILabel * - это подкласс UIView, только он явно отключает 'userInteractionEnabled'. – kennytm