【问题标题】:Appearance of UIAlertControllerUIAlertController的外观
【发布时间】:2019-05-15 04:30:26
【问题描述】:

我想在应用程序中使用外观设置我的 AlertController 的外观。 它适用于背景和按钮,但无论我尝试什么,标题和消息的标签总是保持黑色。

这是我正在做的事情:

UIView.appearance(whenContainedInInstancesOf: [UIAlertController.self]).tintColor = .orange
UIVisualEffectView.appearance(whenContainedInInstancesOf: [UIAlertController.self]).effect = UIBlurEffect(style: .dark)
UILabel.appearance(whenContainedInInstancesOf: [UIAlertController.self]).textColor = .white

这是我得到的结果:

任何想法,我如何设置标题和消息的颜色,或者为什么在这种情况下更改 UILabel 的外观不起作用?

【问题讨论】:

标签: ios uialertcontroller uiappearance


【解决方案1】:

最简单的方法是:不要。

您绝对没有必要局限于使用 UIAlertController 及其简单的默认视图外观和内容。毕竟,它只不过是一个呈现的视图控制器。这意味着可以编写自己的呈现视图控制器,该控制器的外观和行为几乎类似于 UIAlertController 及其视图,但现在您完全负责其内容!

编写自己的类似警报的呈现视图控制器比尝试侵入 UIAlertController 的视图要好得多、更容易、更可靠;前者是完全合法的,而后者除了不可靠之外,还会让您的应用被禁止进入 App Store。

【讨论】:

  • 我知道,我能做到。愚蠢的问题,但是改变视图的外观属性应该是合法的,不是吗?我认为只禁止使用私有 API,或者您认为即使是上述更改也可以被视为苹果禁止该应用程序的理由?
  • 我不能代表 Apple。您在执行此操作时遇到困难的事实表明您不应该执行此操作。你在对抗框架,所以框架在反击。有一个简单的方法。门开着为什么要靠在墙上?
猜你喜欢
  • 1970-01-01
  • 2015-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-07
  • 1970-01-01
  • 2020-08-04
  • 2015-07-09
相关资源
最近更新 更多