这里我创建了名为CustomSlider的UIView子类。 CustomSlider在Storyboard上添加并与storyboard outlet参考相关联。当我打印边界时,我遇到打印边界的问题,它提供了错误的控制台输出。
<div ng-app="myapp">
<fieldset ng-controller="testCtrl">
<p>{{ url }}</p>
</fieldset>
</div>
当我尝试构建输出界限时显示如下:
class CustomSlider: UIView {
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
}
override init(frame: CGRect) {
super.init(frame: frame)
self.setupView()
}
func setupView() {
print("self.bounds.height \(self.bounds)" )
self.backgroundColor = UIColor.red
}
}
class ViewController: UIViewController {
@IBOutlet weak var slider: CustomSlider?
override func viewDidLoad() {
super.viewDidLoad()
slider?.setupView()
}
}
但是我设置了尾随,顶部,右侧,高度的约束。我也试过下线。
self.bounds.height (0.0, 0.0, 1000.0, 1000.0)
我预期的控制台输出将是滑块边界。
答案 0 :(得分:2)
您打印bounds
的电话来得太快了。从xib / storyboard加载的视图具有虚假边界(如图所示),直到发生 layout 。布局在viewDidLoad
时发生 not ;视图尚未出现在界面中,没有尺寸尚未实现。将您的访问权限推迟到bounds
,直到至少第一次调用viewDidLayoutSubviews
之后。