有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非常不同。
提前致谢^^ ;;;
答案 0 :(得分:2)
假设你的代码没有崩溃,因为vw对象是nil。那么它可能是自动布局的一个问题。
你有@IBOutlets,是在故事板中创建的视图吗?
如果是这样,您使用的是自动布局吗?如果是,则需要为其高度设置约束的常量。创建约束的出口并在故事板中将其连接到它(与查看视图的方式相同)。
@IBOutlet weak var viewHeightConstraint: NSLayoutConstraint?
override func viewWillAppear( animated: Bool ) {
vwHeightConstraint.constant = 0
}
您的约束仍然存在,因此即使您设置了帧高,自动布局约束也会将其设置回故事板中定义的高度。