gpt4 book ai didi

ios - 在 UIScrollView 中,UIButton 触摸延迟

转载 作者:IT王子 更新时间:2023-10-29 07:36:51 25 4
gpt4 key购买 nike

我的应用程序遇到了一个小问题。

我基本上有一系列 UIButtonsUIScrollView 中添加为 subview 这是 Nib 的一部分。每次我点击一个按钮时,在突出显示按钮之前都会有明显的延迟。在按钮变暗并显示为选中之前,我必须按住它大约半秒钟。

我假设这是因为 UIScrollView需要确定触摸是滚动还是针对 subview 的触摸。

无论如何,我有点不确定如何进行。我只是希望按钮在我点击它时立即显示为已选中。

感谢任何帮助!

编辑:

我试过设置 delaysContentTouches NO 但滚动变得几乎不可能,因为我的大部分 scrollView 都充满了 UIButtons .

最佳答案

Jeff 的解决方案对我来说不太管用,但这个类似的解决方案确实适用:http://charlesharley.com/2013/programming/uibutton-in-uitableviewcell-has-no-highlight-state

除了覆盖 ScrollView 子类中的touchesShouldCancelInContentView 之外,您还需要将delaysContentTouches 设置为false。最后,您需要为按钮返回 true 而不是 false。这是来自上述链接的修改示例。正如评论者所建议的那样,它专门检查 UIControl 的任何子类而不是 UIButton,以便此行为适用于任何类型的控件。

objective-C :

- (instancetype)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
self.delaysContentTouches = false;
}

return self;
}

- (BOOL)touchesShouldCancelInContentView:(UIView *)view {
if ([view isKindOfClass:UIControl.class]) {
return true;
}

return [super touchesShouldCancelInContentView:view];
}

swift 4:

override func touchesShouldCancel(in view: UIView) -> Bool {
if view is UIControl {
return true
}
return super.touchesShouldCancel(in: view)
}

关于ios - 在 UIScrollView 中,UIButton 触摸延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3642547/

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