2017-05-29 3 views
-2

タイトルによれば、私のアプリケーションはiPhone 6(コードは実際のデバイス、シミュレータではありません) iPad Air2シミュレーターやiPhone 7sシミュレーターのような別のデバイスでアプリを開くと、アプリは完全に混乱します。すべてのサブビューが一緒にメッシュ表示されます。私のコードでiPhone 6ではアプリがうまく見えますが、制約があっても他のデバイスにも邪魔になりません

、私はプログラム的に次の制約形式でサブビューを置く:あなたのサブビューを配置するために制約を使用している場合、それらはデバイス間で同じ位置に留まります、制約の私の理解から

view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-20-[v0]-230-|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": userIdLabel])) 

view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-130-[v0]-510-|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": userIdLabel])) 

。しかし、私は制約の概念を誤解しているように感じ始めています。

あなたは、制約に関して正しい方向に私を指差してくれますか?

ご協力いただきありがとうございます。

+1

それはあなたが言ったものから推測するのは難しいですが、してみてくださいアプリケーションの実行中にXcodeのビューのデバッグ機能を使用します。物事がどこにあるのかを診断するのに有効な制約を示すことができます。 –

答えて

0

はい、あなたは制約の概念を誤解しています。制約に一定の値を指定しても、アプリが異なるデバイス間で同じに見えることはありません。そのためには、現在のデバイスのw/hを考慮して比例的に一定の比率でアプリのビューを調整する必要があります。

また、これらを見てください。 Autolayout views always same size on different screen sizes

How to use autolayout to scale view for all screen sizes?

How to handle iPhone 4s, 5 and 6 screen size, and make all the contents look the same across al the devices

チュートリアル: https://www.raywenderlich.com/115440/auto-layout-tutorial-in-ios-9-part-1-getting-started-2

関連する問題