Ios 单击屏幕左边缘的按钮时不突出显示,但触发事件
当我单击屏幕左侧的按钮时,Ios 单击屏幕左边缘的按钮时不突出显示,但触发事件,ios,Ios,当我单击屏幕左侧的按钮时,test11正在工作,但没有突出显示。当我单击另一个区域中的按钮时,test11正在工作并高亮显示。不同的设备和iOS版本表现不同: iPhone 6s plus:在iOS 9.2.2和9.3.2中不突出显示 iphone7:不突出显示 iPhone6Plus:iOS 10.1的亮点 所有模拟器都高亮显示 我知道问题在于,当您点击按钮的最左侧时,它没有显示触摸突出显示 这是因为按钮上的触摸处理与屏幕边缘手势识别器冲突,因此在轻触完成之前不会转换到已识别状态 如果你仔细
test11
正在工作,但没有突出显示。当我单击另一个区域中的按钮时,test11
正在工作并高亮显示。不同的设备和iOS版本表现不同:
- iPhone 6s plus:在iOS 9.2.2和9.3.2中不突出显示
- iphone7:不突出显示
- iPhone6Plus:iOS 10.1的亮点
- 所有模拟器都高亮显示
检查层次结构中其他激活的识别器,如果您有UINavigationController,则默认情况下,它有一个左屏幕边缘识别器用于后退手势。这往往是这个问题的罪魁祸首。如果需要,您可以禁用此识别器,或者实现它的委托以使其与您的按钮配合。尝试为选中的uicontrol状态添加更多标题/颜色。我不确定。请尝试一下,我只是做个测试,没关系,你有其他代码不同的iphone效果不一样。6系统9、2、2和9.3.2的SPlus不高。iPhone7不是亮点。但在iPhone6plus中,system 10.1是一大亮点;修复代码格式和清晰度感谢George Green如果我关闭系统的3D触控,结果会高亮显示;但在xcode中,我所做的可以在高亮度下工作
- (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");
}