Ios 为UIView创建添加边框的子类的步骤是什么?
在我当前的项目中,我经常创建UIView以在视图上放置一个灰色矩形。我通常先在布局上放置白色视图,然后在Ios 为UIView创建添加边框的子类的步骤是什么?,ios,swift,uiview,subclassing,Ios,Swift,Uiview,Subclassing,在我当前的项目中,我经常创建UIView以在视图上放置一个灰色矩形。我通常先在布局上放置白色视图,然后在viewDidLoad()中设置所有边框。现在,我决定编写一个子类,自动设置视图的边界,然后将所有这些视图设置为使用该子类,从而加快速度。但我不知道在子类上放在哪里: self.layer.borderWidth = 2; self.layer.borderColor = UIColor.grayColor().CGColor; 我是否将其设置为覆盖init()?是否需要覆盖UIView的每
viewDidLoad()
中设置所有边框。现在,我决定编写一个子类,自动设置视图的边界,然后将所有这些视图设置为使用该子类,从而加快速度。但我不知道在子类上放在哪里:
self.layer.borderWidth = 2;
self.layer.borderColor = UIColor.grayColor().CGColor;
我是否将其设置为覆盖init()
?是否需要覆盖UIView的每个版本的init
?还是有更好的方法
谢谢
PS:如果有任何方法可以使边框在故事板设计时立即显示出来(我认为这与可绘制的
有关,但我一点也不了解),我将非常感激
编辑:
从被接受的答案中,我得到了这个答案:基本上是这样的:
import UIKit
class MyView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
didLoad()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
didLoad()
}
convenience init() {
self.init(frame: CGRectZero)
}
func didLoad() {
//Place your initialization code here
self.layer.borderWidth = 2;
self.layer.borderColor = UIColor.grayColor().CGColor;
}
}
这里有一个非常详细的答案: 基本上,您应该覆盖:
init?(coder-aDecoder:NSCoder)
和init(frame:CGRect)
以及awakeFromNib()
。只需从设置边界的位置调用另一个函数 您需要创建UIView的子类,并根据您在此类中的需要声明IBInspectable属性
请尝试以下链接作为示例:
谢谢!从你的链接中真正成为我的解决方案的答案是:它在init frame和init coder上都放置了一个
didLoad()
函数调用。我明白了,所以它是可检查/可设计的,而不是可绘制的lol。我现在正在检查它。谢谢