Ios 将字体设置为响应以下命令的任何对象:#选择器(setter:object.font)
我试图重写这个Objective-C方法,它工作得非常好Ios 将字体设置为响应以下命令的任何对象:#选择器(setter:object.font),ios,swift,selector,uifont,Ios,Swift,Selector,Uifont,我试图重写这个Objective-C方法,它工作得非常好 + (void)setFontName:(NSString*)fontName onObject:(id)object { if ([object respondsToSelector:@selector(setFont:)]) { UIFont* font = [UIFont fontWithName:fontName size:((UIFont *)[object font]).pointSize];
+ (void)setFontName:(NSString*)fontName onObject:(id)object {
if ([object respondsToSelector:@selector(setFont:)]) {
UIFont* font = [UIFont fontWithName:fontName size:((UIFont *)[object font]).pointSize];
[object setFont:font];
}
}
迅速:
public static func setFontRewriting(fontName: String, object: AnyObject) {
if object.responds(to:#selector(setter: object.font)) {
let currentFont: UIFont = object.font
let fontToSet = UIFont(name: fontName, size: currentFont.pointSize)
object.font = fontToSet //doesn't work, getting various syntax errors
}
}
即使对象响应此选择器,我也无法为其设置字体。
object.setFont
也不起作用。有什么建议吗?您可以执行以下操作:
object.setValue(fontToSet,forKey:“font”)
对象的类型为AnyObject。在打电话给setter之前,你必须先施放它。请阅读以下内容:也许可以帮助你更多地了解swift和AnyObject