2 UIView.size.height不工作?

时间:2015-08-28 17:45:43

标签: swift uiview

有2个UIView控件。

@IBOutlet weak var vw: UIView!;
@IBOutlet weak var lbl: UILabel!;

我想设置height = 0.0;

喜欢这个......

vw.frame.size.height = 0.0;
lbl.frame.size.height = 0.0;

我这样做!

override func viewWillAppear( animated: Bool )
{
    vw.frame.size.height = 0.0;
    lbl.frame.size.height = 0.0;
}

override func viewDidAppear( animated: Bool )
{
    vw.frame.size.height = 0.0;
    lbl.frame.size.height = 0.0;
}

但它没有工作!!!

我该如何解决这个问题?

为什么不工作?是脚本吗?

与MicroSoft Control非常不同。

提前致谢^^ ;;;

1 个答案:

答案 0 :(得分:2)

假设你的代码没有崩溃,因为vw对象是nil。那么它可能是自动布局的一个问题。

你有@IBOutlets,是在故事板中创建的视图吗?

如果是这样,您使用的是自动布局吗?如果是,则需要为其高度设置约束的常量。创建约束的出口并在故事板中将其连接到它(与查看视图的方式相同)。

@IBOutlet weak var viewHeightConstraint: NSLayoutConstraint?

override func viewWillAppear( animated: Bool ) {
     vwHeightConstraint.constant = 0
}

您的约束仍然存在,因此即使您设置了帧高,自动布局约束也会将其设置回故事板中定义的高度。