如何使用动态类型文本样式 "Title 1"并将字体面设置为故事板中UILabel的内置字体Chalkboard SE?
我需要尊重iOS中的动态类型大小(Apple自iOS 7以来一直鼓励这样做吗?)我还需要使用内置字体Chalkboard SE,默认情况下它不用于"文本样式"字体.我目前正在使用图像中显示的自定义字体,但需要字体根据用户的动态类型/辅助功能大小首选项更改大小,就像所有文本样式字体一样.最佳文本样式选项是标题1,但字体/字体是不可接受的.
我试过两种方法:
label.font = UIFont.preferredFont(forTextStyle: UIFontTextStyle.body)
label.adjustsFontForContentSizeCategory = true
Run Code Online (Sandbox Code Playgroud)
即使在"设置"中更改了首选文本大小,文本大小也会自动更改,即使在我返回应用程序之前,这也可以正常工作.但它只适用于系统字体(旧金山).
要使用自定义字体,我添加了一个扩展名UIFontDescriptor:
//from this answer http://stackoverflow.com/a/35467158/2907715
extension UIFontDescriptor {
private struct SubStruct {
static var preferredFontName: String = "Avenir-medium"
}
static let fontSizeTable : NSDictionary = [
UIFontTextStyle.headline: [
UIContentSizeCategory.accessibilityExtraExtraExtraLarge: 23,
UIContentSizeCategory.accessibilityExtraExtraLarge: 23,
UIContentSizeCategory.accessibilityExtraLarge: 23,
UIContentSizeCategory.accessibilityLarge: 23,
UIContentSizeCategory.accessibilityMedium: 23,
UIContentSizeCategory.extraExtraExtraLarge: 23,
UIContentSizeCategory.extraExtraLarge: 21,
UIContentSizeCategory.extraLarge: 19,
UIContentSizeCategory.large: 17,
UIContentSizeCategory.medium: 16,
UIContentSizeCategory.small: 15,
UIContentSizeCategory.extraSmall: 14
],
UIFontTextStyle.subheadline: [
UIContentSizeCategory.accessibilityExtraExtraExtraLarge: 21,
UIContentSizeCategory.accessibilityExtraExtraLarge: 21,
UIContentSizeCategory.accessibilityExtraLarge: 21,
UIContentSizeCategory.accessibilityLarge: 21,
UIContentSizeCategory.accessibilityMedium: 21, …Run Code Online (Sandbox Code Playgroud) 我正在开发iOS 8应用程序.我想更改表格视图单元格上的字体,但由于应用了自动动态类型,我无法这样做.
有没有办法关闭此行为,还是我必须编写自己的单元格才能更改字体?
我想支持动态类型但仅限于某个限制,类似于Settings.app,其中标准UITableViewCells可以增长UIContentSizeCategoryAccessibilityExtraExtraLarge但不大.
有没有一种简单的方法来实现标准的UITableViewCell样式?
当我尝试从我的应用程序中的设置辅助功能实现用户选择的文本字体时,无法将用户选择的文本大小输入到我的应用程序中.代码就像
let contentSize = UIApplication.sharedApplication().preferredContentSizeCategory
Run Code Online (Sandbox Code Playgroud)
即使在更改设置/可访问性后,preferredContentSizeCategory也始终返回与UICTContentSizeCategoryL相同的字体
ios ×4
iphone ×2
swift ×2
cocoa-touch ×1
dynamic-text ×1
fonts ×1
ios8 ×1
mobile ×1
uikit ×1
uistoryboard ×1