gpt4 book ai didi

ios - 单击屏幕左边缘的按钮时不突出显示,但触发事件

转载 作者:行者123 更新时间:2023-12-01 22:25:06 26 4
gpt4 key购买 nike

- (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 版本的行为不同:
  • iPhone 6s plus:iOS 9.2.2 和 9.3.2 不突出显示
  • iphone 7:不突出显示
  • iphone 6 plus:使用 iOS 10.1 突出显示
  • 所有模拟器都高亮
  • 最佳答案

    我了解问题是当您点击按钮的最左侧时,它没有显示触摸突出显示?

    这是因为按钮上的触摸处理与屏幕边缘手势识别器冲突,因此在点击完成之前不会转换到已识别状态。

    如果你考虑一下:

  • 用户手指向下触摸,它可能是轻敲或屏幕边缘平移。
  • 用户按住手指(这里你想要触摸突出显示),仍然不确定触摸是点击还是平移(用户仍然可以横向平移)
  • 用户松开手指,系统现在知道触摸是轻击,因此可以为其触发事件。 3.

  • 检查您的层次结构中还有哪些其他识别器处于事件状态,如果您有 UINavigationController 它默认有一个左屏幕边缘识别器用于后退手势。这通常是这个问题的罪魁祸首。如果需要,您可以禁用此识别器,或者实现它的委托(delegate)以使其与您的按钮一起玩。

    关于ios - 单击屏幕左边缘的按钮时不突出显示,但触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42639508/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com