如何在界面制作工具中使用4英寸iphone5和较旧的iPhone 4 / 4s制作uitableview?
Xcode 4.5中有三个选项:
如果我选择了Retina 4,那么在3.5英寸手机中它会越过/溢出屏幕边框
使用代码,我可以相应地设置框架,但是使用界面构建器有什么用?
如何使用Interface Builder进行操作?
修改
我的问题是iphone 5视网膜4英寸屏幕。 当检查具有状态栏和导航栏的视图的大小时,这里是self.view.frame.size.height / width的值,如果我选择freeform / none / retina 3.5
设置自动调整大小选项,以便视图在所有方向上展开,即启用所有struts和spring。
修改 对于iOS6模拟器中的测试,如果我在代码中设置以下内容
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文件。在此之后,它甚至可以在iphone 4上正常工作。现在,所有低于480px的行都可以在iOS 6模拟器中点击
答案 0 :(得分:18)
请注意如果您在应用程序中显示操作表,则将size属性设置为“Retina 4 Full Screen”。此解决方案实际上将主窗口的尺寸设置为iPhone 5的尺寸。在我的情况下,当您尝试显示操作表时,在iPhone 4中设置此受影响的显示,因为它将尝试从可视屏幕下方显示它。
适用于所有情况的正确解决方案是将大小设置为none并在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);
}
答案 1 :(得分:11)
选择您的xib文件并更改Size
属性。
答案 2 :(得分:3)
据我所知,你想创建一个适用于iPhone 4和5的表格视图。首先,我首先尝试了Xcode 4.5,但代码
CGRect fullScreenRect = [[UIScreen mainScreen] bounds];
theTableView.frame = CGRectmake = (0,0,fullScreenRect.width,fullScreenRect.height);
fullScreenRect
将返回当前设备的界限,无论是3.5英寸还是5英寸。你可以动态设置高度和宽度。
让我知道它是否有效..
干杯
w ^
答案 3 :(得分:3)
在界面生成器中选择“自由形式”,“Retina 3.5”或“Retina 4”等设置位于右侧面板的“模拟指标”部分(注意重点已添加) )
这意味着它们仅用于向您展示在这些尺寸上显示时视图的外观。通常,您可以使用它来了解设计时用于布置视图的空间。但是UIViewController的UIView总是在最后显示在屏幕上时调整大小。
例如,如果您知道顶部有一个状态栏和一个NavigationBar,底部有一个TabBar,那么您在屏幕上组织剩余视图的空间将会减少,因此请在“模拟”中选择这些视图。面板的“度量标准”部分将帮助您查看视图中的哪个空间,并避免将元素放在y = 460处,因为这些NavBar和TabBar会在运行时偏离屏幕。
但最后,UIViewController将调整其视图大小,以便占用最大可用空间,根据AutoresizingMask属性移动子视图(您可以在IB中的Size Inspector窗格中配置struts和amp弹簧)。 / p>
总之,你唯一需要做的是:
答案 4 :(得分:0)
如果您的界面使用的是Storyboard:
使用“文本编辑器”打开* .Storyboard
并走到最后
找
<simulatedScreenMetrics key="destination" type="retina4"/>
删除
type="retina4"
然后它将是默认大小3.5“