我有一个在我的iPhone 5上开发和测试的应用程序,但现在我想让它在4和4s的旧款iphone上运行。功能以相同的方式工作,但由于屏幕分辨率,有些按钮不会出现。
有什么办法可以让同样的.xib在不同的屏幕分辨率上工作吗?
答案 0 :(得分:3)
a)您始终可以使用锚点或弹性坐标设计界面(.xib),因此如果屏幕更大/更小,则坐标相对于屏幕的一个边缘。
b)您可以在UIScrollView中对整个屏幕进行WRAP,并让用户SCROLL访问所有按钮。
这些是最简单的。 a)会让你更头疼。我会选择b)因为它的效率更高。
对于b)我还建议您在较小的屏幕中搜索界面并检查隐藏的内容是否部分可见,因此用户有一个提示,那里有"#34;
修改强>
这是使用不同的xib文件初始化viewController的示例。
- (id)init
{
int model = ... //some model inspection method;
switch(model) {
case iphone3g:
return [self initWithNibName:@"iphone3g.xib" bundle:nil];
case iphone4:
case iphone4s:
return [self initWithNibName:@"iphone4x.xib" bundle:nil];
... //etc
答案 1 :(得分:1)
我建议在自动布局上使用Apple的WWDC视频,这些视频将有助于使用相同的XIB。这真的取决于你的界面和你想要做的事情,没有一个正确的答案。
您还可以创建两个XIB,一个用于480高度,另一个用于568,然后稍微写入代码以询问设备的大小,并加载适当的XIB。如果自动布局对您正在实施的内容感到非常痛苦,这可能很有用。