Center以编程方式在self.view中创建了UIView,iPhone 3.5和4英寸?

时间:2014-06-13 13:47:05

标签: ios iphone objective-c uiview

我在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;

我不确定为什么我的问题被低估了,因为我试图做的事情非常简单。如果有遗漏的内容请告诉我,以便我可以相应地调整我的问题。

2 个答案:

答案 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;

这将给予    enter image description here

因此视图将保留在您添加它的位置,并且在设备大小更改时不会更改。