【发布时间】:2018-02-25 01:33:39
【问题描述】:
我在 UIViewController 中有一个 UIView。我正在使用 Objective-c 和自动布局故事板。这是一个简单的步骤:以编程方式将 UIView 添加到我的故事板的 UIView 中。
我正在使用此代码:
UIView *newView = [[UIView alloc]initWithFrame:myStoryboardView.frame];
[newView setNeedsLayout];
[myStoryboardView addSubview:newView];
我也尝试使用边界而不是框架:
UIView *newView = [[UIView alloc]initWithFrame:myStoryboardView.bounds];
[newView setNeedsLayout];
[myStoryboardView addSubview:newView];
但是当我运行这个时,宽度是错误的,不像我的第一个 UIView 的宽度。但是,如果我将情节提要更改为与我用来运行应用程序的模拟器相同的情节提要,则两个 UIView 中的宽度相同...
如何自动设置与我在情节提要中的第一个视图相同的宽度。
【问题讨论】:
-
尝试将
TranslatesAutoresizingMaskIntoConstraints设置为false在您的newView和clipsToBounds上设置true -
我在将我的 newView 添加到情节提要中的视图之前和之前添加此代码,但它不起作用 [newView setTranslatesAutoresizingMaskIntoConstraints:NO]; newView.clipsToBounds = YES;我该如何解决这个问题?
-
如果他禁用自动调整掩码翻译,他将需要在他的视图上设置顶部、底部、前导和尾随约束。与依赖自动调整大小相比,这仍然是首选,但我离题了......无论如何,如果父视图框架不为零,它应该可以在不修改这些属性的情况下工作。
标签: ios objective-c uiview autolayout addsubview