iOS 5.1.X および 6.X をサポートするユニバーサル アプリを構築しています。しかし、皆さんに質問があります。iOS 5.1.X では autolayout がサポートされていないため、3 つのペン先を持つソリューションを考えました。グラフィックスとアニメーションを使用しますが、それが最良のソリューションになるとは確信していません. このアプローチに対するご意見、または別のソリューションの提案をお待ちしております。
3 に答える
3つのペン先をロードすることは問題ではありません。ユニバーサルアプリを構築していると想像してみてください。今、あなたがipadとiphoneの両方で同じnibファイルを使おうとすると、それは失敗です。あなたのUIはすべて台無しになります。ただし、網膜と非網膜の場合は、同じnibファイルを使用できるように1倍と2倍の画像を使用できます。しかし、ここで本当に3つのnibファイルを使用したい場合は、1倍と2倍の画像を使用すると思います
あなたは次のようにすることができます
最初に、デバイスがiphone
またはipad
int iphone =0;
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
iphone = 0;
}
else
{
iphone = 1;
}
NSString* nibName;
if(iphone == 0)
{
nibName = @"SettingsiPadView";
}
else
{
nibName = @"SettingsiPadView";
}
Settings* setObj = [[Settings alloc]initWithNibName:nibName bundle:nil];
[self.navigationController pushViewController:setObj animated:YES];
AutoLayout のせいで、このようなコーナーに追い込まれないでください。覚えておく必要があります: XIB のレイアウトは決して絶対的なものではありません。でレイアウト コードを記述するオプションがあり-viewDidLoad
(または、さらに良いことに-layoutSubviews
)、いくつかの創造的な計算を使用して、ビュー コントローラーで適切なレイアウト コードを使用して、アプリを 1 つのユニバーサル XIB に分割することもできます。
アプリが実際にユニバーサルである場合、ビュー コントローラー用に 2 つ以上の XIB を持つ必要はありません (また、iPad のバージョンと Pod のようなデバイスのバージョンは、個別のレイアウトまたはデザインを保証するのに十分なほど異なります)。