警告:leading or trailing horizontal alignment before iOS 11
ストーリーボードファイルのシーンの1つで、Xcode 9.1のコンパイル中に上記の警告が表示されます。他のストーリーボードがあります(with iOS iOS 10.0)まだ特定のストーリーボードファイルのこの特定のシーンに警告が表示されます。
警告が表示されるシーンで展開ターゲットをiOS 11.0に変更すると、警告は抑制されますが、それはしたくありません。
誰もこの事件に遭遇しましたか?
ステップ1:
ステップ2:
次のすべてのインスタンスを置き換えます。
contentHorizontalAlignment="leading"
で:
contentHorizontalAlignment="left"
ステップ3:
次のすべてのインスタンスを置き換えます。
contentHorizontalAlignment="trailing"
で:
contentHorizontalAlignment="right"
ステップ4:
コンパイルしてウォッチ警告が消えます。
修正が必要な要素が大量にある場合、このアプローチは簡単です。 「contentHorizontalAlignment」値タイプとしての「リーディング」および「トレーリング」がiOS 11で導入されました。iOS10は、警告の理由である「リーディング」および「トレーリング」を認識しません。
ビルドログの「警告」という単語の直前に、「xxx-yy-zzz」という形式のInterface Builder識別子が表示されます。それをコピーしてXcode検索バーに貼り付けると、「問題のある」コントロールが見つかります。検索結果をクリックすると、対応するコントロールが選択されたストーリーボードが表示されます。問題の残りは、他の回答を使用して解決できます。
この問題は、少しずらして左揃えにする必要があるボタンがたくさんあることで発生しました。ストーリーボードの配置を削除し、viewDidLoadで必要なボタンの配列を使用してこのようにしました。
func indentButtons(buttons: [UIButton?]){
for i in 0..<buttons.count{
buttons[i]!.contentHorizontalAlignment = .left
buttons[i]!.titleEdgeInsets = UIEdgeInsetsMake(0, 5, 0, 0)
}
}