簡體   English   中英

將iphone應用程序轉換為iPad,iOS?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM