2013-04-05 37 views
5

工作,我在.xib做简单的设计,我的应用程序部署目标是的iOS 5 我的看法不调整大小,当我运行我在模拟器或设备的应用程序。AUTORESIZE不是在厦门国际银行

这里是我的.xib文件的快照..

当我尝试运行我在模拟器应用程序,它可以正常运行在4" 的模拟器,但它不调整大小,当我运行我的应用程序在3.5“的模拟器中。 Autoresize子视图属性被检查。

这里是我的Simulaotrs,第一张截图的快照是3.5" 和第二4" ..提前

谢谢。

+0

set size =无视网膜3.5全屏 – 2013-04-05 11:25:48

+0

您是否整合了scrollview?所以你可以滚动页面。因为无法查看整个视图,因为导航和标签栏控制器 – 2013-04-05 11:34:09

+0

它不是scrollView,它只是简单的视图 – Krunal 2013-04-05 11:36:25

回答

5

,如果你想自动调整和autoorder图标引用到上来看,尝试播放或者与布局选项卡
layout

或创建为每个布局自己的.xib)

+0

你的好建议,你知道如何在图标和它的标签之间添加空间? – Krunal 2013-04-09 13:42:24

+0

在我的应用程序,我设置这个编程。也许你可以使用容器视图?或者只是一个UICollectionView并设置rowheight ^^,但是当你这样做时,你可以建立第二个和第三个.xib文件。如果你不打算扩展列表,但让它是静态的,这是最简单的方法;)如果你知道项目的数量将会扩展,那么最好使用集合视图。如果不喜欢它或不得不在IOS 5.1和更低版本中使用它,我可以给你解决类似的问题;) – geo 2013-04-09 14:35:08

3

检查您是否已经在.xib文件取消选中了自动布局选项.. enter image description here

+0

是的,Autolayout是不选择 – Krunal 2013-04-05 11:36:47

+0

选择视图,并在上面的图像的5选项卡选项中设置自动调整... – Venkat 2013-04-05 12:07:33

+0

Autoresize子视图已经检查.. – Krunal 2013-04-05 14:14:14

2

我有我要实现与按钮的网格类似的效果。我想你会发现iOS 5支持的自动识别功能根本就不会。最后,我有两个Storyboard,一个用于iOS 6设备,另一个用于iOS 5.我的App Delegate然后检查主视图是否响应UIView的constraints方法(它告诉你它是否支持新的iOS 6约束 - 并加载相关的Storyboard。

像这样的事情在你的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法:

if (![self.window.rootViewController.view respondsToSelector:@selector(constraints)]) { 
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_BC_iPhone" bundle:nil]; 
    UITabBarController *rootController = [storyboard instantiateInitialViewController]; 
    [self.window setRootViewController:rootController]; 
} 

的iOS 6的故事板默认加载,但是这与向后兼容一个覆盖它如果需要的话。仅向3.5英寸显示器手动设置向后兼容的Storyboard,因为iPhone 5最低只能运行iOS 6,因此向后兼容的Storyboard不需要在4英寸显示器上运行。

设置的向后兼容故事板没多久 - 只要复制你的iOS 6的一个使用限制,然后将其设置为3.5" 显示屏,将制约断并修复了意见

的替代品。可以根据屏幕尺寸以编程方式布置图标,其优点是可以将其设计为适应任何屏幕尺寸,但缺点是这可能会花费更多的努力

[编辑] 注意到你使用的是.xib而不是Storyboards,但理论是一样的。检查UIView是否响应constraints,然后加载合适的NIB(.xi b)相应的文件。

7

你能不能请使用您的下一个设置。厦门国际银行文件(416 = 480 - 20(宽状态栏) - 44(宽度导航栏) enter image description here

416 = 480 - 20 (width for status bar) - 44(width for nav bar)

如果你想下一个设置图标在iPhone 5中使用顶部图标

enter image description here enter image description here

,如果你想在iPhone 5中使用的底部图标旁边的图标设置: enter image description here enter image description here

+0

它对你有帮助吗? – 2013-04-10 07:30:59

+0

从你的好建议,你知道如何增加图标和它的标签之间的空间吗? – Krunal 2013-04-10 09:23:22

+0

标签 - 标签里面的按钮或按钮与图标和标签 - 它是不同的元素? – 2013-04-10 09:41:15

2

解决方案非常简单。
添加的UIView你的超级视图,然后加入所有的图标到他们这样 (注意从导航控制器开始标签栏视图大小)
enter image description here

此子视图(一个有你的图标)应拥有这些自动调整口罩 enter image description here

  • 和你的图标应该有相同的自动尺寸口罩。
2

您可以从Ray WenderLich example获取参考。非常简单地解释autoLayout以及它的例子。它会向你描述你所犯的每一行错误。如果你已经启用了Autolayout,那么在选择视图时必须在左侧显示约束条件。

1

正如我所看到的那样,根据您的布局设置以及解决方法,您有几个选项。

如果您使用的是Autolayout,那么您的元素上会有Contraints,即使您使用调整大小,也可能无法在视图中显示所有元素。他们只是不适合。所以在这种情况下,我建议你使用480分辨率的滚动视图来使你的视图能够被显示。

Autolayout disabled

在您的.h文件中,使一个IBOutlet到您的视图:

@property (strong, nonatomic) IBOutlet UIView *contentView; 

在您.m文件,设置像这样。

//Add scrollview 
UIScrollView *scrollView=(UIScrollView *)self.view; 
scrollView.contentSize=self.contentView.frame.size; 
[self.view addSubview:self.contentView]; 

另一种变通从而有可能为你把你的元素,无论你觉得自己有不同间距等将是使两个不同的.xib文件,并在您设置这样的ViewController:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone){ 
     if([UIScreen mainScreen].bounds.size.height == 568.0) 
     { 
      //Use iPhone5 VC 
      self = [super initWithNibName:@"RootViewController-568h" bundle:nibBundleOrNil]; 
     } 
     else{ 
      //Use Default VC 
      self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
     } 
    } 
    return self; 
} 

这就是如果你打电话给你的ViewController RootViewController,这样你就很安全,如果他们决定扩大未来iPhone5s或iPhone6的屏幕尺寸。它看起来不太好,但至少不会让应用程序崩溃。