任何使UIAlertController的所有按钮/操作中的文本加粗的方法



我有一个要求,即UIAlertController按钮中的文本应为每个按钮设置为粗体(与标准的iOS行为相反,该行为是分配了样式取消的按钮是粗体,或者已设置首选操作的按钮是粗体。要求是所有按钮文本都应加粗(。

有没有办法使用 UIAlertController 来实现这一点?还是会强制使用 UIView 创建自定义对话框?

过去有很多关于使用属性字符串操作 UIAlertController 的正文文本的问题/答案,但我还没有找到任何对 UIAlertController 的操作按钮文本执行等效操作的方法。

UIAlertController上的按钮是UIAlertAction .UIAlertAction的任何属性上没有任何 setter 方法,因此无法将按钮文本更改为粗体。

即使title必须是String类型,它也不接受NSAttributedString。因此,您应该使用UIView进行自定义对话框。

苹果类参考UIAlertAction

@available(iOS 8.0, *)
open class UIAlertAction : NSObject, NSCopying {
    public convenience init(title: String?, style: UIAlertActionStyle, handler: ((UIAlertAction) -> Swift.Void)? = nil)
    open var title: String? { get }
    open var style: UIAlertActionStyle { get }
    open var isEnabled: Bool
}

还是会强制使用 UIView 创建自定义对话框?

是的,就是这样。但它非常简单,并且比UIAlertController为您提供了更多的功能和灵活性。那里有很多示例项目,一旦您使用了一个,您可能再也不会回到UIAlertController了!

最新更新