禁止分段控制段改变
Posted
技术标签:
【中文标题】禁止分段控制段改变【英文标题】:Disallow segmented control segment from changing 【发布时间】:2016-06-24 14:17:59 【问题描述】:我有一个奇怪的问题,关于我们正在应用中的临时修复。出于可怕的原因,我们有一个包含三个段的分段控件,但我们在三个 tableView 数据源中拥有每个分段控件的三个实例(不要问,我们希望这不是最终解决方案......)
无论如何,由于这种糟糕的设置,当我们选择一个新段时,分段控件的实例 A 会选择它的新索引。然后我们换出数据源并在桌子上调用reloadData
。现在我们选择了分段控件的实例 B,其索引与选定的实例 A 相同。然后,当我们选择原始段时,实例 B 将其索引设置为新索引,我们现在重新加载数据,这会导致显示实例 A。然而,实例 A 仍然选择了旧索引,因此它的选择显示了错误的索引。
我目前正在通过手动重置委托回调中的选定索引来解决这个问题。但是,理想的情况是告诉分段控件我不希望它改变它的选择,但我仍然希望用户能够与之交互。这有可能吗?我意识到这是一个糟糕的解决方案,再次,我们希望将来改变它,所以现在,对我有什么建议吗?
【问题讨论】:
【参考方案1】:在最后一步中,当分段控件的实例 A 再次显示时,您应该编写 cellForRowAtIndexPath 以使用 selectedSegmentIndex
属性将分段设置为所需分段。这样当实例 A 再次显示时,它将显示正确的索引。
【讨论】:
我现在发生了一些非常相似的事情,在我完成所有新数据的获取之后,我将段设置回正确的段。然而,这感觉很hacky,这并不是世界上最糟糕的事情,因为将分段控件作为一个单元格首先是一个hack,但我想尝试保持这个修复的“hackiness”如果可能,最低限度。 这艘“hacky”船听起来像是很久以前航行的。现在你只是想让你的混乱表现正确。以上是关于禁止分段控制段改变的主要内容,如果未能解决你的问题,请参考以下文章
解决Android中,禁止ScrollView内的控件改变之后自动滚动 - 转
iOS App转让/转移Label文字分段颜色UIWebView禁止滚动获取设备的 DeviceTokeniOS友盟分享,指定界面显示需要分享到的平台的解决方案
iOS App转让/转移Label文字分段颜色UIWebView禁止滚动获取设备的 DeviceTokeniOS友盟分享,指定界面显示需要分享到的平台的解决方案