如何以编程方式覆盖故事板 UIView 高度 属性

How do I override Storyboard UIView height property programatically

我在我的 viewController 中放置了一个小 UIView 并设置了它的 constraints 左、右和下。为了不得到 constraint error 我还必须添加一个高度。不过我不想保持这个高度,因为我希望它像这样在 viewController 中动态设置:

bottomBar.frame.size.height = self.view.frame.height / 10

我认为这会 override 我在 storyBoard 中设置的 constraint 值,但它不起作用。我将它设置为 / 2 只是为了看看会发生什么,但它仍然保持 storyboard 值。我如何override这个?

您可以link将情节提要高度限制到出口:

@IBOutlet var heightConstraint: NSLayoutConstraint!

然后你可以更改它:

heightConstraint.constant = 100

您可以在构建时删除故事板约束。只需选择所需的约束和 select "Remove at build time".

您可以从您在情节提要中添加的约束创建一个 IBOutlet 连接到 ViewController。 对于下图中的示例:

建立连接后,您可以这样做:

self.newlyAddedConstraint.constant = self.view.frame.height / 10;

就是这样。你的身高会被调整。根据您设置此常量的位置,您可能还需要调用

[self.view layoutIfNeeded]