UIScrollview 中的 UISwitch 几乎无法使用

Posted

技术标签:

【中文标题】UIScrollview 中的 UISwitch 几乎无法使用【英文标题】:UISwitch within UIScrollview nearly impossible to use 【发布时间】:2010-03-30 17:04:06 【问题描述】:

我在位于 UIScrollView 内的视图底部使用 UISwitch-Component。 现在出现的问题是,开关几乎不可能滑动,因为 UIScrollView 似乎主导了用户输入。

通过点击开关切换效果很好,但从我的角度来看,大多数用户“切换” UISwitch 而不是点击。

你们中是否有人遇到过相同/或类似的问题并设法提出解决方案?

提前谢谢

山姆

【问题讨论】:

【参考方案1】:

您需要做出设计决策:如果您的内容是要水平滚动的,那么用户在开关上滑动就会产生歧义——这是否意味着他们想要滚动或切换开关?

最简单的解决方案是修改您的 UI,以消除这种歧义。例如,如果滚动条的contentSize 不宽于滚动视图的边界,则它不能水平滚动,水平滑动总是会激活开关。

如果您确实希望允许水平滚动,那么将UISwitch 替换为在触摸时切换的UIButton 是有意义的,类似于播放/暂停按钮。

另一方面,如果你不想修改你的 UI,你总是可以这样做:

myScrollView.delaysContentTouches = NO;

这将使您的开关立即“获取”触摸,而不是让它们先转到UIScrollView。 More info here。 (你也可以在 Interface Builder 中设置这个布尔值,正如 Squeegy 所指出的那样。)

【讨论】:

嘿泰勒。感谢您的回复,将 delaysContentTouches 设置为 NO 解决了我的问题。我的 Scrollview 只能垂直滚动,所以我认为这不是设计问题.. thx!

以上是关于UIScrollview 中的 UISwitch 几乎无法使用的主要内容,如果未能解决你的问题,请参考以下文章

静态 UITableViewCell 中的 UISwitch 生成错误

UITableViewCell 中的自定义 UISwitch

从弹出窗口中的 UISwitch 操作中隐藏 UIImageView (iPad)

将 UISwitch 添加到 TableView 中的一个单元格

对于 iO,我有一个 if / else 代码块,对 UISwitch 中的变化做出反应。在某些情况下如何将 uiswitch 设置回关闭?

UITableViewCell 中的 UISwitch