2011-11-13 7 views
0

iPhoneアプリケーションをiPadに移植しようとしていますが、できるだけ作業が少なく、最後の1つのポイントで止まっています。ユニバーサルアプリケーション上の.XIBのUIViewは常にiPhoneのUIサイズを報告します

私は、画面の下部に沿って配置されたカスタムUI要素を持っています。 UI要素は、UIViewのサブクラスであり、いくつかのデリゲートメソッドと私のクライアントのためのカスタム図面が必要です。 UIViewには、複数のUIButtonオブジェクトが均等に配置されています。

私の質問は、これらのプログラムで作成されたUIButtonを中央に維持する方法です。カスタムクラスCustomNavBarのUIViewを含む中央の.xibファイルがあります。 CustomNavBarクラスの中で私は、次の操作を実行しようとしている:

self.frame.size... 

または

self.bounds.size... 

または

CGRect rect = [[UIScreen mainScreen]bounds]; 
    rect.origin.size... 

が、リターンの全ては、iPhoneの標準サイズです。 .XIBファイルに含まれている他のオブジェクトに自動サイズ設定をすべて設定しましたが、UIアスペクトがプログラムによって作成されるインスタンスで何をすべきかを判断することはできません。

希望すると助かります。

答えて

1

iPad用の別のxibを使うことができるので、デフォルトのiPadサイズがあります。あなたのxibがiPhoneデバイスファミリ用に作成されている場合、それはiPad上でうまく統合されません。

NSString* xibName = @"myview.xib"; 
if ([[UIDevice currentDevice].model isEqualToString:@"iPad"]) 
{ 
    xibName = @"myview_iPad.xib"; 
} 

このコードを使用して、xibのiPad版を取得します。 xib名を取得し、iPhone xib名またはiPad xib名(現在のデバイスがiPadの場合は_iPadを追加)を返すマクロ(または関数)を作成することもできます。

+0

お返事ありがとうございます。私はこれが解決策であることを恐れていました - 私は怠け者の解決を望んでいました!もう一度、ありがとう。 – JordanMazurke