let dictTitleColor = [NSAttributedStringKey.foregroundColor: UIColor.LTColor()]
let titleAttributedString = NSMutableAttributedString(string: title, attributes: dictTitleColor)
alert.setValue(titleAttributedString, forKey: "attributedTitle")
当我增加设备的字体大小时,标题字符串不增加我在alertview控制器中设置了这个字符串?那么如何使这个响应字体大小改变?
答案 0 :(得分:0)
let dictTitleColor = [NSAttributedStringKey.foregroundColor : UIColor.green,
NSAttributedStringKey.font : UIFont.preferredFont(forTextStyle: .headline)]
let titleAttributedString = NSMutableAttributedString(string: title, attributes: dictTitleColor)
alert.setValue(titleAttributedString, forKey: "attributedTitle")
注意:如果显示弹出窗口,然后用户在辅助功能设置中更改了字体大小,则会失败。在这种情况下,您可能需要收听UIContentSizeCategoryDidChange
并更新其中的字体大小。
e.g。
NotificationCenter.default.addObserver(self, selector: #selector(preferredContentSizeChanged(_:)), name: NSNotification.Name.UIContentSizeCategoryDidChange, object: nil)
方法
@objc func preferredContentSizeChanged(_ notification: Notification) {
let dictTitleColor = [NSAttributedStringKey.foregroundColor : UIColor.green,
NSAttributedStringKey.font : UIFont.preferredFont(forTextStyle: .headline)]
let titleAttributedString = NSMutableAttributedString(string: title, attributes: dictTitleColor)
alert.setValue(titleAttributedString, forKey: "attributedTitle")
}
答案 1 :(得分:0)
使NSMutableAttributedString
响应Dynamic Type
与simple string element相同。
我在下面提供一个允许您使用的示例:
使用此代码段,您可以通过@IBOutlet weak var myLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
let myFrenchString = "Hello, ceci est un texte anticonstitutionnellement très très long qu'il va falloir couper je nesaisvraimentpasquand."
let paraph = NSMutableParagraphStyle()
paraph.alignment = .justified
paraph.hyphenationFactor = 1.0
let myText = NSMutableAttributedString(string:myFrenchString,
attributes: [
.font: UIFontMetrics(forTextStyle: .title1).scaledFont(for: UIFont(name:"HoeflerText-Black", size:18)!)
])
myText.addAttribute(.paragraphStyle,
value: paraph,
range: NSMakeRange(0,1))
myLabel.attributedText = myText
}
使NSMutableAttributedString
响应。
如果您需要进一步了解Dynamic Type
功能,我建议您看一下2017年WWDC视频使用动态类型构建应用程序中的this complete and detailed summary。