2017-06-27 6 views
0

デバイスのサイズに基づいて上記の制約の長さを変更したいので、私のテキストは常に画面上部から比例した距離になります。NSConstraintの長さをデバイスのサイズに応じて比例的に変更する

enter image description here

+0

。制約ラインを選択してNSLayoutConstraintを作成し、定数を設定します。 '@IBOutlet var top:NSLayoutConstraint! ' ' top.constant = 85' – Parimal

+0

@sadhu私の答えを確認してください –

答えて

1

あなたはUI自体に乗算器を調整して画面の高さを追加することを通じて、比例トップのスペースを行うことができます。

コンセントの制約を受けずに自動的に上部スペースを調整します。あなたはそのため@IBOutletを作成する必要があり

-> UIView 

    -> UILabel (make hidden,for adjusting proportional top space) 

     Constraints : top space - 8(default), width - 50(constant any value) , center horizantaly of parent UIView, equal height to parent UIView. 
     Now modify your multipliers of proportional height to 0.2 (20% from your main view height) or 0.3(30 %).It will adjust based on screen size automatically. 

    - > UILabel (Verification Code) Constraints : top space min 8 (default) & others... 

enter image description here

+0

同じ高さの乗数を変更すると、8に設定されているスペースの上限に影響するでしょうか? - UILabel(比例するトップスペースを調整するために非表示にします) –

+0

@sadhu_sanjay first UILabelは見えません。あなたのトップビューと2番目のUILabelの間のコントロールは、画面サイズに基づいてトップスペースを調整する。最初のラベルのちょうどクリック高さの制約は、右側のパネルで乗数プロパティを見ることができます0.2または0.3 ..に設定編集、 –

+0

@sadhu_sanjay私の画像を確認してください。アップフォートに忘れてください。 –

0

あなたはself.view.frame.heightを使用することができます。このよう

yourConstraintはこの制約のために@IBOutletある

let height = self.view.frame.size.height 
let constraint = CGFloat(Double(height)/3) 

yourConstraint.constant = constraint 

UILabelUIViewのように追加できます。それをあなたのコードにドラッグアンドドロップしてください。

希望します。

+0

これはうまくいくはずです。ストーリーボードを経由する方法はありませんか?他のビューに基づいてラベルの高さを設定できるときは、乗数を使用します。 –

+0

@sadhu_sanjay私はこの解決策に会ったことは一度もありませんが、おそらく可能です。私はこのようにしています:) –

+0

@sadhu_sanjay私の答えが助けられたら、それを受け入れてください(ジャックドウを押す)。ありがとう –

0

最初に制約用のIBOutletを作成します。

あなたの制約名はmyConstraintです。今、あなたがしたい場合は、検証コードの距離がトップ から20%であることをあなたは次のコードを使用することができます

var parentFrameHeight = self.view.frame.height 
myConstraint.constant = parentFrameHeight*(0.2) 
関連する問題