私は基本的なUIViewサブクラスを新しいXcodeで設定していて、奇妙な動作に遭遇しました。サブクラス化されたビューは一見正常にロードするように表示されます。Xcode 8 - Autolayouts Issue
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self baseInit];
}
return self;
}
- (void)awakeFromNib
{
[super awakeFromNib];
[self baseInit];
}
私は、私は1つを所有してiPhone 6の大きさに設定され、ストーリーボード内の別のコンテナビューを構築するために始めました。非常に少ないオブジェクトで少し複雑なレイアウトになっていましたが、制約を設定してもレイアウトがずれていました。
私はXcodeのアップグレード後に問題がどこにあるかを見るために、簡単なビューで実験を始めました。
2つのUIViewでの簡単なエクササイズ。
優先設定は、各制約する1000に設定し、デバイスがiPhone 6Sに設定しました。
しかし、iPhone 6 /秒の結果や自分のデバイスiPhone 6がシフトしている:
私は周りいじるし始めたときに、私は次の場合には、iPhoneにストーリーボードデバイスを設定することを発見しましたSEは、それは、iPhone 6シミュレータとiPhone 6デバイスの両方に正しくコンテンツが表示されます:
を設定が間違っています。私は新しいXcodeバージョンで何かを見逃してしまったのですか?オートレイアウトと制約を扱う方法は?
はbaseInit
がUIViewsとフレームサイズで何かをやっている場合は、viewDidLayoutSubviews
内で呼び出す必要がありますあなたの A.
ありがとう、それはトリックでした! – Alessign