我在UIScrollView中的视图底部使用UISwitch-Component。 现在出现的问题是,交换机几乎不可能刷卡,因为UIScrollView似乎主导了用户输入。
通过点击开关可以很好地切换,但从我的角度来看,大多数用户“切换”UISwitch而不是点击。
您是否有人遇到过相同/类似的问题并设法提出解决方案?
事先提前SAM
答案 0 :(得分:3)
你有一个设计决定:如果你的内容是水平滚动,那么用户在开关上滑动是不明确的 - 这是否意味着他们想要滚动或切换开关?
最简单的解决方案是修改您的UI,以免这种歧义消失。例如,如果滚动的contentSize
不比滚动视图的边界宽,则它不能水平滚动,水平滑动将始终激活切换。
如果您确实想要允许水平滚动,那么将UISwitch
替换为触摸时切换的UIButton
是有意义的,类似于播放/暂停按钮。
另一方面,如果您不想修改UI,可以随时执行:
myScrollView.delaysContentTouches = NO;
这将使您的切换器立即“获取”触摸,而不是让它们首先转到UIScrollView
。 More info here。 (您也可以在Interface Builder中设置此布尔值,如Squeegy所指出的那样。)