我在viewDidLoad
中以编程方式创建了一个UIView,并且只想将其置于self.view
中。使用iPhone 5,视图正确居中。当我切换到3.5模拟器时,我的视图被推向self.view
的底部。
世界上我能做错什么?我的xib里面只有一个空视图,即使我创建的视图没有指定xib,我也得到相同的结果。
我如何简单地将我的新UIView集中在self.view
而不会跳过一百万个篮球?
编辑:
我的代码非常简单:
UIView *newView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.width)];
newView.backgroundColor = [UIColor redColor];
[self.view addSubview:newView];
newView.center = self.view.center;
我不确定为什么我的问题被低估了,因为我试图做的事情非常简单。如果有遗漏的内容请告诉我,以便我可以相应地调整我的问题。
答案 0 :(得分:1)
首先,您需要告诉我们您的应用是否使用自动布局或支柱和弹簧。根据您的使用情况,答案完全不同。
如果你正在使用自动布局,那么中心位置几乎被忽略,重要的是你对视图的限制。
如果您不使用自动布局,则上述代码不对。视图的中心属性位于superview的坐标系中。
设置中心的代码应如下所示:
CGPoint center = [self.view convertPoint self.view.center fromView: self.view.superview];
newView.center = center;
但正如我所说,如果您使用自动布局,则不会产生任何影响。
答案 1 :(得分:0)
您可以使用此代码进行自动调整
UIView *view=[[UIView alloc] init];
view.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;
这将给予
因此视图将保留在您添加它的位置,并且在设备大小更改时不会更改。