修改容器视图的高度

时间:2017-12-27 15:19:19

标签: ios swift

这是我的应用程序左侧的配置文件(ProfileViewController)和右侧的ContainerView(ContainerViewController)。我想要实现的是,一旦containerViewController完成了它的工作,它将更新UIView的高度。

enter image description here

// ContainerViewController.swift
let heightConstraint = self.view.constraints.filter { $0.identifier == "Height" }.first
heightConstraint?.constant = height

在浏览约束列表时,它们都是emtpy,我确实在故事板中设置了一些约束。所以为什么 ?有没有办法在ContainerViewController中访问UIView?

PS:

DispatchQueue.main.async {
  self.view.frame = CGRect(x: 0, y: 0, width: width, height: height)
}

听起来很有效,但我认为修改约束是正确的?不是吗?

1 个答案:

答案 0 :(得分:1)

我要做的是为约束设置IBOutlet,并将其存储在ContainerView中。

这样,即使代码(或故事板)将来发生变化,您也不依赖订单号或其他任何东西来获得此约束。

是的,正确的方法是将约束设置为常量,而不是更改框架。 但请注意,即使是约束常量更改也需要放在主(UI)线程上 - (通过代码的外观,我假设,您正在处理线程)。