Iphone 将UIVIEW置于所有设备尺寸的中心

Iphone 将UIVIEW置于所有设备尺寸的中心,iphone,ios,xcode,interface,Iphone,Ios,Xcode,Interface,我正在开发一款iPhone应用程序,而且对xcode还比较陌生。我正在尝试设计我的应用程序,以便无论使用什么设备,主用户界面都是中心的。我有一个包含所有控件(文本字段、提交按钮)的uiview。我将此uiview集中在基于iPhone5模拟指标的interface builder中。当我在iPhone4或更低版本上进行测试时,这个uiview自然不会居中,而是朝向屏幕底部。在interface builder中是否有一种简单的方法可以使此uiview自动中心基于设备?是否需要以编程方式将其添加到

我正在开发一款iPhone应用程序,而且对xcode还比较陌生。我正在尝试设计我的应用程序,以便无论使用什么设备,主用户界面都是中心的。我有一个包含所有控件(文本字段、提交按钮)的uiview。我将此uiview集中在基于iPhone5模拟指标的interface builder中。当我在iPhone4或更低版本上进行测试时,这个uiview自然不会居中,而是朝向屏幕底部。在interface builder中是否有一种简单的方法可以使此uiview自动中心基于设备?是否需要以编程方式将其添加到中

感谢所有能帮忙的人

iPhone 3.5英寸=

iPhone 4inch=

您可以使用界面生成器中的自动调整大小选项。固定上边距和下边距并设置灵活的高度

您可以使用界面生成器中的自动调整大小选项。固定上边距和下边距并设置灵活的高度

首先创建大小为(320480)的基本视图,然后将视图添加为基本视图的子视图

那就这样做,

CGRect _baseFrame=baseView.frame;
    _baseFrame.origin=CGPointMake((self.view.frame.size.width-baseView.frame.size.width)/2, (self.view.frame.size.height-baseView.frame.size.height)/2);
    baseView.frame=_baseFrame;

最初创建大小为(320480)的baseView,然后将该视图添加为baseView的子视图

那就这样做,

CGRect _baseFrame=baseView.frame;
    _baseFrame.origin=CGPointMake((self.view.frame.size.width-baseView.frame.size.width)/2, (self.view.frame.size.height-baseView.frame.size.height)/2);
    baseView.frame=_baseFrame;

如果您使用的是Xcode 4.5以后的版本,那么您可以为iPhone 3.5英寸和iPhone 4英寸制作两种不同的XIB,如下所示:


这将便于维护所有视图组件

如果您使用的是Xcode 4.5以后的版本,那么您可以为iPhone 3.5英寸和iPhone 4英寸制作两种不同的XIB,如下所示:


这将便于维护所有视图组件

如果启用了“自动布局”(默认设置),则应将视图水平和垂直居中,并为其指定固定的高度和宽度。一旦有了这些约束,就应该能够删除任何其他约束。这将使其在纵向和横向任意大小的屏幕中居中。

如果启用了“自动布局”(默认设置),则应在水平和垂直方向上居中视图,并为其指定固定的高度和宽度。一旦有了这些约束,就应该能够删除任何其他约束。这将使它在纵向和横向的任何大小的屏幕中保持居中。

您需要探索以下内容:

旧方法-自动调整掩码大小

新方法-自动布局
默认情况下,这在新项目上启用。您可以通过取消选中序列图像板文件检查器中的一个框来关闭它。自动布局仅适用于ios6。自动调整大小在ios6,5,4上工作

这两者都提供了不需要代码的布局引擎。使用这两种方法,可以使用“大小检查器”更改情节提要中对象的设置

自动布局是苹果公司最喜欢的发展方向,但我建议首先尝试自动调整遮罩的尺寸。Autolayout允许您对对象的相对定位施加更大的控制,但代价是复杂得多。如果可以使用自动调整大小来获得结果,请执行以下操作


两者都有很好的指南

您需要探索以下内容:

旧方法-自动调整掩码大小

新方法-自动布局
默认情况下,这在新项目上启用。您可以通过取消选中序列图像板文件检查器中的一个框来关闭它。自动布局仅适用于ios6。自动调整大小在ios6,5,4上工作

这两者都提供了不需要代码的布局引擎。使用这两种方法,可以使用“大小检查器”更改情节提要中对象的设置

自动布局是苹果公司最喜欢的发展方向,但我建议首先尝试自动调整遮罩的尺寸。Autolayout允许您对对象的相对定位施加更大的控制,但代价是复杂得多。如果可以使用自动调整大小来获得结果,请执行以下操作


两者都有很好的指南

在视图控制器中定义其

#define STATUSBAR_HEIGHT 20

#define SCREEN_HEIGHT (( double )[ [ UIScreen mainScreen ] bounds ].size.height - STATUSBAR_HEIGHT)

#define SCREEN_WIDTH (( double )[ [ UIScreen mainScreen ] bounds ].size.width)
比如说

UIView *view = [[UIView alloc]init];
[view setBackgroundColor:[UIColor purpleColor]];

//for example view height 100 and width 100 then

float xAxis = (SCREEN_WIDTH - 100)/2;
float yAxis = (SCREEN_HEIGHT - 100)/2;


[view setFrame:CGRectMake(xAxis, yAxis, 100, 100)];
[self.view addSubview:view];
如果您通过xib进行查看,那么您应该使用此


在视图控制器中定义其

#define STATUSBAR_HEIGHT 20

#define SCREEN_HEIGHT (( double )[ [ UIScreen mainScreen ] bounds ].size.height - STATUSBAR_HEIGHT)

#define SCREEN_WIDTH (( double )[ [ UIScreen mainScreen ] bounds ].size.width)
比如说

UIView *view = [[UIView alloc]init];
[view setBackgroundColor:[UIColor purpleColor]];

//for example view height 100 and width 100 then

float xAxis = (SCREEN_WIDTH - 100)/2;
float yAxis = (SCREEN_HEIGHT - 100)/2;


[view setFrame:CGRectMake(xAxis, yAxis, 100, 100)];
[self.view addSubview:view];
如果您通过xib进行查看,那么您应该使用此


谢谢你的帮助!这会拉伸我使用的图像吗?我有一个为视网膜/非视网膜创建的用户界面图像。?是的。这对我来说很有用。否则,您可以使用视网膜和非视网膜的不同图像作为image.png和image@2x.png. 它将自动使用它们,具体取决于设备I最终未选中所有自动调整大小选项,并且视图现在以所有iphone大小为中心。(没有支柱或弹簧是红色的)。谢谢谢谢你的帮助!这会拉伸我使用的图像吗?我有一个为视网膜/非视网膜创建的用户界面图像。?是的。这对我来说很有用。否则,您可以使用视网膜和非视网膜的不同图像作为image.png和image@2x.png. 它将自动使用它们,具体取决于设备I最终未选中所有自动调整大小选项,并且视图现在以所有iphone大小为中心。(没有支柱或弹簧是红色的)。谢谢谢谢你的帮助。我会试试这个方法。谢谢你的帮助。我会试试这个方法。谢谢!我已经考虑过了。在我看来,仅为这一个视图维护单独的XIB似乎是一项工作。我的应用程序确实使用了xib文件,出于好奇,这是否适用于故事板?谢谢!我已经考虑过了。在我看来,仅为这一个视图维护单独的XIB似乎是一项工作。我的应用程序确实使用了xib文件,出于好奇,这是否适用于故事板?在发布此问题之前,我在网上环顾四周时遇到了自动布局。我以前从未使用过它,我正在创建的应用程序最初不是针对ios 6的。我能够打开自动布局,但不确定它的确切用途。我现在明白你所说的约束是什么意思了,我将看看这是如何实现的。谢谢大家!@user2023912,在IB的右下角,有一个带3个图标的灰色圆形矩形。左边的那个可以让你将视图居中,中间的那个可以设置高度和宽度