1

Xcode 4.5 でアプリを開発していますが、以前のバージョンのシミュレーター ( 4.3、5.0 AutoLayout) などでテストすると、アプリがクラッシュします。この例外 "

Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named NSLayoutConstraint "

Google をUse AutoLayout調べたところ、xib でチェックインするとこれが発生することがわかりました。

しかし、これをオフにするUse Autolayoutと、例外は発生しません。

しかし、retina4インチでアプリをテストすると、ビューのコンテンツが上から始まります。中央から始まります。つまり、非網膜と網膜でテストした場合、デザインは同じではありません。その目的のために、私は保持しました状態'Use AutoLayout'checked

両方の条件を満足させるにはどうすればよいですか?すべてのバージョンのシミュレーターと互換性を持たせる必要があります...

どんな助けでもかなり/感謝します...

4

3 に答える 3

0

Use Autolayoutは、iOS 6.0 以降の nib ファイルのレイアウトを自動的に設定するために Apple が提供するオプションです。そのため、それよりも古いバージョンの iOS をサポートしようとすると、OS はそれを見つけることができず、クラッシュが発生します。

したがって、 iOS 6.0 以降のみをサポートする場合に使用できるオプションです。

于 2013-03-29T07:38:34.143 に答える
0

iPhone 5 の 4 インチ ディスプレイの場合、3 番目のデフォルト イメージ Default-568h@2x.png が必要です。それ以外の場合、ビューはレターボックス化されます。iOS6 より前のバージョンの iOS をサポートするには、autolayout オプションを無効にする必要がありますが、これは、自動サイズ変更マスクを適切に設定するか、画面サイズに応じてコードでビューを手動で更新することに加えて必要であることを意味します。

于 2013-03-29T07:36:02.343 に答える
0

viewControllerに異なるXIBをロードできます。3.5 インチの場合は、次の手順に従います。

1. Select your xib, first unchecked auto-layout.
2. Select View object and in its property window, change size property and set it to Retuina 3.5 full screen.
3. Make changes in your code to load your XIB's for different devices.
于 2013-03-29T07:40:31.427 に答える