Ios 如何在父uiview内部设置uiview大小?

Ios 如何在父uiview内部设置uiview大小?,ios,iphone,uiview,size,Ios,Iphone,Uiview,Size,我使用以下代码在UIView中设置子UIView(白色框) float x = 10.0; float y = 40.0; float w = self.view.frame.size.width - 20.0f; float h = self.view.frame.size.height/3.0; UIView *whiteBox = [[UIView alloc] initWithFrame:CGRectMake(x, y, w, h)]; 基本上,我想在父视图的两个边距上画一个10像素的

我使用以下代码在UIView中设置子UIView(白色框)

float x = 10.0;
float y = 40.0;
float w = self.view.frame.size.width - 20.0f;
float h = self.view.frame.size.height/3.0;
UIView *whiteBox = [[UIView alloc] initWithFrame:CGRectMake(x, y, w, h)];
基本上,我想在父视图的两个边距上画一个10像素的白框。但是,白框的右侧始终超出父视图的边界。看起来self.view.frame.size.width大于实际视图的宽度。我使用iphone5S作为模拟器。
我只是想知道如何设置白盒的正确宽度。

您是用什么方法来设置的?在脚本有机会调整大小和适应屏幕之前,您可能会从脚本中获得父视图的宽度值


为了避免类似的问题,最好使用autolayout,而不是提供这些容易出错且需要时间读取的计算类型。如果可以,请在序列图像板中添加uiview,并向superview添加前导、尾随、顶部和底部约束,且常量为10

您可以使用诸如“左边距”和“右边距”之类的约束,以便视图将根据其superview自动调整自身

宽度为600,在ViewDidLoad方法中。是的,我可以在故事板中使用我已经完成的自动布局。我只是好奇如何在代码中实现这一点。当然,我仍然可以编程地使用自动布局约束。我只是想知道为什么uiview的帧宽度看起来不适合我当前的模拟器(Iphone5S)。
ViewDidLoad
是你的问题。使用此方法后不会设置框架。尝试将其移动到
视图将显示:
视图显示:
查看以了解更多信息。是。我已经这样做了。只是想知道为什么我的代码不能正常工作。似乎宽度不适合我当前的模拟器。