点击冲突中的 UIButton 和 UISlider

Posted

技术标签:

【中文标题】点击冲突中的 UIButton 和 UISlider【英文标题】:UIButton and UISlider in tap conflict 【发布时间】:2013-01-10 19:08:38 【问题描述】:

我有一个奇怪的问题。设计师为我提供了一个设计(不可能改变),它把一个按钮放在一个非常靠近滑块的地方。 为了说明起见,让我们谈谈左侧。 该按钮仅从大约注册水龙头。从左边算起三分之二的宽度。如果我进一步向右轻按,则轻按会在滑块中注册。` 即使我在 IB 中更改这些控件的 Z 顺序,它仍然会发生。

为什么要让按钮的整个区域为自己注册点击,解决方案是什么?

【问题讨论】:

【参考方案1】:

您应该尊重 Apple HCI 指南,它们的存在是有原因的。和设计师谈谈;-j

【讨论】:

我不是在帖子里说不可能吗? @EarlGrey,是的,你做到了,我的回答无疑是有争议的,但这是我强烈的感受。您是否无法以知情的方式向设计师反馈为什么他们的设计从 UI 的角度来看毫无意义?如果不同意我的观点,也许你可以在你的问题中发布设计图片。但是按照您描述的方式,这是一个问题,如果从技术上解决,会给用户带来不好的体验。 实际上,我同意这种设计,它是一种边缘案例,但有效。不幸的是我不能发布它,它包含专有的用户界面。这个问题是由一个有点草率的 Apple UISlider 实现恕我直言。 两个建议浮现在脑海中(没有完全考虑清楚) - 子类 UISlider 并拦截手势 - 和/或一些命中测试..? 奇怪的是,当发生命中测试时,z 顺序没有得到尊重。我深思熟虑的答案是重写一些 UIControl 方法,在其中添加断点,然后弄清楚发生了什么。

以上是关于点击冲突中的 UIButton 和 UISlider的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell 中的 UIButton 不可点击

导航栏中的 UIButton 无法识别 iOS 11 中的点击

UITableViewCell 中的 UIButton 是可点击的(获取正确的事件)但问题是点击效果不可见

UIView中的UIButton不可点击

iOS开发UIView的动画与嵌入的UIButton的问题

如何使单元格中的 UIButton 在被点击后立即保持特定状态?