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(数字角标)

iOS:从 popOver 刷新 ViewController

iOS 5.1.1 Popover 不会自动关闭

简单好用可任意定制的iOS Popover气泡

《iOS Human Interface Guidelines》——Popover