iOS addView:无限制地从故事板添加视图

iOS addView: Adds view from story board without constraints

我在 Storyboard 中有一个视图,它显示了一条错误消息。我使用

在加载时删除它
[self.ErrorView removeFromSuperView];

稍后在代码中,我想显示视图,使用

[self.MainView addSubview:self.ErrorView];

这确实显示了视图,但视图的大小仅由 in 中的内容决定,而在故事板上,它使用 'Leading/Trailing Edge' 约束调整为全宽。

如何刷新视图的约束以匹配故事板上的约束。

为这两个限制建立一个强大的私有 属性 出口。 当您需要再次将视图重新添加到视图层次结构时,只需使用 addConstraint 方法将这两个约束添加回层次结构即可。

    [self.parentView addConstraint:self.constraintX];

据我了解,您只想在 UIViewController 中显示和隐藏视图?如果这是您的目的,您应该使用此代码:

self.ErrorView.hidden = YES;  // To hide alert

self.ErrorView.hidden = NO;  // To show alert

使用 [self.ErrorView constraints]; 获取所有约束,然后遍历它并找到将 ErrorView 作为其约束项之一的约束,然后使用

将该约束添加到 ErrorView
[self.ErrorView addConstraint: retrievedConstrainted];