- (void)viewDidLoad {
[super viewDidLoad];
UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(0, 20, 400, 200)];
[btn setTitle:@"123" forState:UIControlStateNormal];
[btn setTitle:@"234" forState:UIControlStateHighlighted];
[btn setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];
[btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[btn setBackgroundColor:[UIColor grayColor]];
[btn addTarget:self action:@selector(test11) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];
}
- (void)test11 {
NSLog(@"xxxxxxxxxxxxxx");
}
当我点击屏幕左侧的按钮时,test11
正在运行,但不是高亮。当我单击另一个区域中的按钮时,test11
正在工作并且正在高亮。不同的设备和iOS版本的行为有所不同:
答案 0 :(得分:0)
我理解问题是当您点按按钮的最左侧时,它没有显示触控高亮显示?
这是因为按钮上的触控处理与屏幕边缘手势识别器冲突,因此在点击完成之前不会转换为识别状态。
如果你想一想:
检查您的层次结构中其他识别器处于活动状态,如果您有UINavigationController,则默认情况下它具有左侧屏幕边缘识别器用于后退手势。这通常是这个问题的罪魁祸首。您可以根据需要禁用此识别器,或者实施它的委托以使其与您的按钮一起玩。