Rog*_*are 2 xcode storyboard xib ios
在我的一个应用程序中,我有一个样式文档,其中包含不同文本样式的方法,例如:
+(UIFont*)h1{
return [UIFont fontWithName:@"Helvetica" size:48.0];
}
Run Code Online (Sandbox Code Playgroud)
然后,在viewDidLoad每个视图控制器的方法中,我以编程方式设置文本样式.这是一种非常好的方法,可以使应用程序中的样式保持一致且易于调整.
这是我的问题:有没有办法让XIB文件/故事板反映这些文本样式?如果没有,有没有办法实现类似的功能(即,在一个地方定义所有样式,并从那里拉出XIB/Storyboard元素)?谢谢阅读.
编辑:
为了澄清,这是期望的最终结果:
UILabels我的各种视图中的样式设置为任何这些文本样式.这可以在代码中,在Interface Builder中完成(例如,在Luan建议的用户定义的运行时属性中),或者在任何地方.Rog*_*are 10
好的,事实证明这是可能的!这是如何做:
添加样式类,您可以将所有样式信息放在一个位置:
import UIKit
class MyStyles: NSObject {
static func fontForStyle(style:String)->UIFont{
switch style{
case "p":
return UIFont.systemFontOfSize(18);
case "h1":
return UIFont.boldSystemFontOfSize(36);
case "h2":
return UIFont.boldSystemFontOfSize(24);
default:
return MyStyle.fontForStyle("p");
}
}
}
Run Code Online (Sandbox Code Playgroud)创建您想要实现样式的任何对象的子类,比如UILabel,并输入以下代码:
import UIKit
@IBDesignable class MyLabel: UILabel {
@IBInspectable var style:String="p"{
didSet{self.font=MyStyle.fontForStyle(style)}
}
}
Run Code Online (Sandbox Code Playgroud)这将是一个巨大的节省时间,我希望你们中的一些人发现它也很有用!