我正在使用一个名为HMSegmentedControl
的分段控件库,它并不太复杂,但是,设置它的titleTextAttributes
会给我带来一些麻烦。titleTextAttributes
是通过Swift输入的。在objc文件中,它是[AnyHashable: Any]!
我要做的是:
let segmentedControl = HMSegmentedControl(sectionTitles: ["All", "A", "B"])!
segmentedControl.titleTextAttributes = [
NSFontAttributeName: Styleguide.Fonts.someFont.font(ofSize: 9),
NSForegroundColorAttributeName: UIColor.lightGray
]
Xcode为
@property (nonatomic, strong) NSDictionary *titleTextAttributes
和NSFontAttributeName
提供了“使用未解析标识符”错误 最佳答案
因为这些是Obj-C标识符。你应该使用快速的:NSAttributedStringKey.font
(或者通常简单地.font
,swift在处理本机对象时可以推断出其余的内容,但在这种情况下,如果swift声明为AnyHashable: Any
,则可能不会这样做)
以及NSAttributedStringKey.foregroundColor
。
所以你想要的是:
segmentedControl.titleTextAttributes = [
NSAttributedStringKey.font: Styleguide.Fonts.someFont.font(ofSize: 9),
NSAttributedStringKey.foregroundColor: UIColor.lightGray
]