[英]Converting an iphone application into an iPad , iOS?
我目前有一個iOS iPhone應用程序。
我想做的是讓它成為通用的,這樣我也可以瞄准iPad。
我做了什么,是去目標並改變iOS應用程序目標,從iPhone到通用。
現在,當我在iPad上運行應用程序時,它會自動調整iPad的所有視圖大小。
然而,有一些觀點,背景圖片看起來不那么好,因為我需要使用更高分辨率的圖片或一般我應該改變iPad版本中的一些東西。
iPad .nib文件在哪里??? 我的意思是,我只看到iPhone的。 當我在我的iphone上運行它時,會使用這些文件。 當我在我的iPad上運行它時,一切都正確調整大小,但這些.nib文件到底在哪里?
我讀過的教程(相當古老)表明,當你定位iPad時,應該為ipad創建新的.nib文件。 為什么我看不到這些文件?
您可以讓iOS根據擴展名自動加載正確的xib,類似於Retina圖形的工作方式。 如果您的xib名為Awesome
,並且您希望將其轉換為擁有iPhone 和 iPad版本(而不是共享,請將其重命名為:
iPhone版:
Awesome~iphone
iPad版:
Awesome~ipad
然后,當你告訴iOS加載Awesome
,它將根據當前平台自動選擇加載哪一個。 代碼中不需要if
語句! 如果你願意 ,你仍然可以,但這不是必需的。
注意 :重命名后可能需要執行清理! 有時在重命名時,某些文件會粘貼在構建中。
您只需要創建新的.xib文件並將它們設置為同一個類,然后您可以使用以下條件初始化該viewController:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
yourVC = [[YourViewController alloc] initWithNibName:"YourViewController_ipad" andBundle:nil];
}
else
{
yourVC = [[YourViewController alloc] initWithNibName:"YourViewController" andBundle:nil];
}
只要有可能,你應該嘗試使用相同的.xib,但在很多情況下,它是不可能做到這一點,看起來不錯,所以你只需要做一秒。 Xcode不會自動為您執行此操作。
假設你有一堂課。 我們稱之為Two
。
以下是組成Two
類的當前文件。
Two.h
Two.m
Two.xib
Two.xib
包含一個適合iPhone的UIView
。 為了制作適合iPad的視圖,您應該創建一個新的XIB文件(將其命名為Two_iPad.xib
),將XIB連接到Two
,在iPad的Two_iPad.xib
調整UIView
大小,並進行相應的設計。
在創建Two
的新實例時,請執行以下操作。
Two *two;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
//they are using an iPad
two = [[Two alloc] initWithNibName:@"Two_iPad" bundle:nil];
} else {
//they are using an iPhone/iPod Touch
two = [[Two alloc] initWithNibName:@"Two" bundle:nil];
}
您正在創建一個新的Two
實例; 但是,您正在檢查用戶具有哪個設備,並使用相應的XIB文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.