Ios 如何使interface builder中的uitableview与4英寸iPhone兼容
如何使interface builder中的uitableview与4英寸iPhone 5和旧版iPhone 4/4s兼容 Xcode 4.5中有三个选项:Ios 如何使interface builder中的uitableview与4英寸iPhone兼容,ios,ios5,ios6,Ios,Ios5,Ios6,如何使interface builder中的uitableview与4英寸iPhone 5和旧版iPhone 4/4s兼容 Xcode 4.5中有三个选项: 自由形式 视网膜3.5全屏 视网膜4全屏 如果我选择视网膜4,那么在3.5英寸手机中,它会穿过/溢出屏幕边界 使用代码,我可以相应地设置框架,但是使用interface builder有什么用呢 人们应该如何使用Interface Builder实现这一点 编辑 我的问题是关于iPhone5视网膜4英寸屏幕。 当检查具有状态栏和导航栏的
- 自由形式
- 视网膜3.5全屏
- 视网膜4全屏
self.tableView.frame = CGRectMake(0, 0, 320, 546);
self.tableView.bounds = CGRectMake(0, 0, 320, 546);
self.view.frame = CGRectMake(0, 0, 320, 546);
self.view.bounds = CGRectMake(0, 0, 320, 546);
NSLog(@"%2f - %2f", self.view.bounds.size.width, self.view.bounds.size.height);
NSLog(@"%2f - %2f", self.tableView.bounds.size.width, self.tableView.bounds.size.height);
我得到以下输出
320.000000 - 546.000000
320.000000 - 546.000000
从顶部开始,480像素以下的所有行都是不可选择的,因为“视图”仍然认为它们超出了范围
我的解决方案
将所有屏幕的大小设置为Retina 4,即使是主窗口xib文件。在这之后,即使在iPhone4上,它似乎也能正常工作。现在,在iOS 6模拟器中,480px以下的所有行都可以单击。据我所知,您想创建一个既适用于iPhone 4又适用于iPhone 5的表视图。首先,我没有尝试过Xcode 4.5,但是代码
CGRect fullScreenRect = [[UIScreen mainScreen] bounds];
theTableView.frame = CGRectmake = (0,0,fullScreenRect.width,fullScreenRect.height);
fullScreenRect
将返回当前设备的绑定,无论是3.5英寸还是5英寸。u可以动态设置高度和宽度
让我知道它是否有效
干杯
W在界面生成器中选择“自由形式”、“视网膜3.5”或“视网膜4”等设置位于右侧面板的“模拟的度量”部分(请注意添加的重点) 这意味着它们仅用于显示视图在这些尺寸上显示时的外观。通常,您可以使用此选项在设计时了解布局视图所需的空间。但当UIViewController的UIView显示在最后的屏幕上时,它的大小始终会调整 例如,如果您知道将在顶部有一个状态栏和导航栏,在底部有一个选项卡栏,那么您在屏幕上组织剩余视图的空间将更少,因此在“模拟指标”中选择这些面板的部分将帮助您查看视图中的空间,并避免将元素放置在y=460处,因为这些导航栏和选项卡栏在运行时会脱离屏幕 但最后,UIViewController将调整其视图的大小,以便占用最大的可用空间,并根据AutoresizingMask属性(您可以在IB中的“大小检查器”窗格中配置的struts&Spring)移动子视图 总之,您唯一需要做的是:
- 选择“视网膜3.5”模拟度量,以便在界面生成器中查看显示此视图时可能具有的最小尺寸(帮助您避免将视图和控件放置在屏幕的某个部分,该部分仅在4英寸屏幕中可见,而在3.5英寸屏幕上不可见)屏幕和设计视图(记住最小的公共区域)
- 正确配置自动调整大小的遮罩(如果您计划仅为iOS6而不是iOS4或iOS5发布应用程序,请使用自动布局和约束),以便在屏幕更高时正确重新排列视图(视网膜4”)
大小属性
小心将“大小”属性设置为“视网膜4全屏”“如果您在应用程序中提供操作表。这个解决方案实际上将主窗口的尺寸设置为iPhone5的尺寸。在我的例子中,当您尝试显示操作表时,在iPhone4中设置此受影响的显示,因为它将尝试从可视屏幕下方显示
适用于所有情况的正确解决方案是将大小设置为“无”,并在app delegate didfinishloading方法中检测屏幕大小,然后将主窗口设置为该大小,或者将rootviewcontroller的视图设置为该大小。操作表将正常工作
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window.frame = CGRectMake(0, 0, [[UIScreen mainScreen]bounds].size.width, [[UIScreen mainScreen]bounds].size.height);
}
如果您的界面正在使用故事板:
使用“文本编辑器”打开*.Storyboard
走到底
发现
删除
type=“retina4”
那么它将是3.5中的默认大小“您看过IB中的自动调整大小选项了吗?添加启动映像默认值-568h@2x.png一切都会好的。IB可以选择模拟4英寸-在右下角靠近缩放按钮的地方…我遇到了同样的问题,那就是底部的一行不可点击。最后,我把所有屏幕的大小都设置为retina4,我知道如何用代码来实现。我正在界面生成器中查看如何进行编辑检查我的编辑,即使在代码中设置后,480 px以下的部分也不可选择/可单击+1,我需要通过编程更改大小,正确的代码是:CGRect fullScreenRect=[[UIScreen mainScreen]bounds];self.view.frame=CGRectMake(0,0,fullScreenRect.size.width,fullScreenRect.size.height)代码>不正确,这里是self.view.frame.size.height/width,frame 320.000000 x 416.000000的值,如果我选择freeform/none/retina 3.5是,那么?如果视图控制器在3.5英寸屏幕(高度为480pt)上显示状态栏(20pt)和导航栏(44pt),则这就是视图的大小,对我来说似乎是合法的。我的问题是关于4英寸的iphone 5视网膜!!高度不是480px!!我在iOS 6模拟器上进行测试。是的,我在尝试新的iOS 6模拟器,认为问题“与4英寸的iphone 5兼容”是明确的。是的,我知道,这样做无助于解决问题