UIView子类在控制台中绑定不正确

时间:2017-01-04 19:15:04

标签: ios uiview

这里我创建了名为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) 

这是我的项目的截图

here is screenshot my project looks like

我预期的控制台输出将是滑块边界。

1 个答案:

答案 0 :(得分:2)

您打印bounds的电话来得太快了。从xib / storyboard加载的视图具有虚假边界(如图所示),直到发生 layout 。布局在viewDidLoad时发生 not ;视图尚未出现在界面中,没有尺寸尚未实现。将您的访问权限推迟到bounds,直到至少第一次调用viewDidLayoutSubviews之后。