iOS Popover 或 ActionSheet 导致 UISegmentedControl 按钮变灰
Posted
技术标签:
【中文标题】iOS Popover 或 ActionSheet 导致 UISegmentedControl 按钮变灰【英文标题】:iOS Popover or ActionSheet cause UISegmentedControl buttons to be grayed out 【发布时间】:2018-03-15 17:39:39 【问题描述】:如何在 ios 11 和 Swift 4 中以 ActionSheet 样式呈现 UIPopoverController 或 UIAlertController 时移除/更改 UISegementedControl 上灰显按钮的默认效果。
【问题讨论】:
它们是灰色的,因为它们在弹出框/警报可见时被禁用。 【参考方案1】:在控件或父视图(而不是.automatic
)上将tintAdjustmentMode
设置为.normal
,以防止在弹出窗口或UIAlert 演示期间变暗。
见UIViewTintAdjustmentMode
这不会影响它们在演示过程中被禁用的事实,但如果它只是您想要的颜色,那么这将起作用。
不调光也是iOS7 HIG的一个突破。
【讨论】:
是的,请理解调暗是正常且正确的行为,未能调暗禁用的控件(如分段控件)违反了 Apple 的人机界面指南,会导致用户混淆,并可能导致Apple 拒绝您的应用。 是的,我知道,但客户想要这样的设计,所以如果可能的话我会这样做,他会决定什么对他来说更好 我可以在这种灰色模式下更改此按钮的颜色,因为深灰色段上的文本几乎不可见。我也有自定义自适应演示模式,并考虑如何以编程方式在此灰色模式下切换此 UISegmentedControl。 好的,我发现我可以手动将此 tintAdjustmentMode 设置为 .dimmed以上是关于iOS Popover 或 ActionSheet 导致 UISegmentedControl 按钮变灰的主要内容,如果未能解决你的问题,请参考以下文章
在 Popover 中显示 ActionSheet - 我做错了啥?
MUI - actionsheet(操作表)badge(数字角标)