web-dev-qa-db-ja.com

「自動優先最大レイアウト幅は8.0より前のiOSバージョンでは使用できません」の原因を見つける

私はこの警告の理由とそれを解決する方法を知っています:ラベルに好ましい幅を与えるためです。

問題は、その警告をクリックしても、選択されたラベル/ビュー/ビューコントローラーが表示されないことです。ストーリーボードが開き、それだけです。ストーリーボードには、多くのビューを持つ多くのビューコントローラがあります。すべてのViewControllerを手動で繰り返すことなく、問題の原因となっているラベルを見つけるにはどうすればよいですか?警告をクリックすると、警告の原因となっているビューに移動するはずですが、ストーリーボードが開くだけです。

14
Can Poyrazoğlu

この警告の原因となっている特定のラベルを見つける1つの方法は次のとおりです。

  1. 警告を右クリックして、[ログに表示]を選択します
  2. ログ内の警告が強調表示されます。このラベルのInterfaceBuilderオブジェクトIDをコピーします(xxx-xx-xxxのように見えます)。
  3. これを検索ナビゲーターに貼り付けます。この結果をクリックすると、問題のあるラベルが選択された状態でInterfaceBuilderが開きます。
38
Don Eichenseer

XCODE 6.1を実行して、エラーを見つける最も簡単な方法は、レポートナビゲータを使用することでした。

  1. View-> Navigators-> Show Report Navigatorまたは、単に⌘-8を押します
  2. 左側のペインでビルドをクリックします。
  3. 警告の横にある詳細アイコンをクリックします。

enter image description here

  1. 警告の説明でオブジェクトIDを見つけます。

enter image description here

  1. ファイルに移動し、⌘-fでオブジェクトIDを検索します。

enter image description here

  1. 問題を修正します。 自動優先最大レイアウト幅は8.0より前のiOSバージョンでは使用できません
11
Tom Howard

@DonEichenseerの回答は素晴らしいです。しかし、それを解決したい人のために:私は以前に同じ問題を抱えています。この問題は、UILabelプロパティ(属性インスペクター内)が1よりも大きいLinesが原因でした。関連するUILabelを見つけたら、Linesを1に設定します。

2
Majid

ラベルから行数を削除し、プログラムで設定するだけです

[label setNumberOfLines:2];
2
Fadi Abuzant

その投稿 で述べたように、この正規表現を使用することもできます <label(?!。* PreferredMaxLayoutWidth) ストーリーボードソースで、preferredMaxLayoutWidthが設定されていないすべてのラベルを検索します。次に、それを修正します。

2

それはコレクションビューからの警告ですか?もしそうなら、それはセルと行数がゼロに設定されたラベルだと思います。

1
Henry T Kirk

自動レイアウトなしで7.1で開発された既存のプロジェクトでも同じ問題が発生しました。アプリをiOS8に移行し、プロジェクトファイルでバージョンを8.0に変更すると、何らかの理由で、複数行のUILabelを使用したXibで警告が表示されました。

問題を修正するには、Xibのファイルインスペクターを選択し、ビルド対象のバージョンを確認します。私の場合は、iOS7用でした。

enter image description here

ビルドを関連するバージョンに変更する必要があります

enter image description here

私の場合と同じように警告が消えます:-)

0
Gutty1

XCode6.2に切り替える必要があります->メインのXCode領域の右上にある警告アイコンをクリックします->警告を選択します->警告の原因となった項目が正確に表示されます。 enter image description here

0
samthui7