如果未采用 xib,如何使视图控制器与 iphone 5 兼容

Posted

技术标签:

【中文标题】如果未采用 xib,如何使视图控制器与 iphone 5 兼容【英文标题】:how to make the view controller compatible with iphone 5 if xib not taken 【发布时间】:2013-05-03 04:31:16 【问题描述】:

如果没有使用 xib 文件,如何使视图控制器与 iphone 5 兼容。是否有可能以编程方式进行更改。 提前致谢。

【问题讨论】:

“如果它的 xib 文件没有被占用”是什么意思? @IronManGill 添加了没有 xib 文件的视图控制器类,我只以编程方式进行操作。 是的,他说的是其他方式,但并不是我们无法理解他的意思 @PrakashDesai 在我的 iphone5 底部显示死区,这意味着屏幕尺寸只有 480,然后这些方法无法实现? 视图大小为 480 意味着它适用于 iphone classic 来解决这个问题,如果我在我的回答中提出了其他建议。您的视图高度为 480,但 iphone 5 的高度超过 550,所以很明显,您将得到死空间希望现在它清楚了 :) 【参考方案1】:

是的,你可以做到这一点。 XIB 也只是文件,只需在文本编辑器中打开一个 - 您会看到它由可读的 xml 代码组成。现在为了使 viewController 与 Iphone 5 兼容,只需设置 if else 条件,并通过检查特定设备的高度来分别为不同设备制作东西 但毫无疑问,这将是一项长期的工作

对于我的通用应用程序,外汇应用程序,我只是像这样使用屏幕高度检测概念:

CGSize screenSize = [[UIScreen mainScreen] bounds].size;

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) 
    if (screenSize.height > 480.0f) 
        /*Do iPhone 5 stuff here.*/
     else 
        /*Do iPhone Classic stuff here.*/
    
 else 
    /*Do iPad stuff here.*/

【讨论】:

【参考方案2】:

检查设备是否为 iPhone 5 并设置框架编程..

CGRect screenRect = [[UIScreen mainScreen] applicationFrame];

    if (screenRect.size.height >= 548 )
    
       // set your frame for iPhone 5
    else
    
       // set your frame for iPhone 4
    

【讨论】:

【参考方案3】:

是的,您可以通过添加以下条件来做到这一点

CGSize result = [[UIScreen mainScreen] bounds].size;
if(result.height == 480)

    iPhone 4 or less 

else if (result.height == 568)

     iPhone 5 condition

无论您想在哪里区分这两款手机。

【讨论】:

以上是关于如果未采用 xib,如何使视图控制器与 iphone 5 兼容的主要内容,如果未能解决你的问题,请参考以下文章

将 XIB 文件自动调整为屏幕大小

通用 UIViewController

如何使自动布局与 XIB 中的自定义 UIView 一起使用?

如何使自定义的 UITableViewCell xib 宽度适合设备宽度

将xib放在UIView控件iphone中

从另一个 XIB (iPhone) 的视图控制器加载 XIB