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];
按钮不起作用。不知道为什么?
---------------- EDIT&解 - - - - - - 谢谢@KennyTM
UILabel默认不处理任何事件。您需要将标签的userInteractionEnabled
属性设置为YES
。
另外,最好不要在UILabel的顶部添加UIButton。
答案 0 :(得分:1)
UILabel默认不处理任何事件。您需要将标签的userInteractionEnabled
property设置为YES。
按钮不应该是标签的子视图,这是不合逻辑的。使它们都成为UIView的子视图。