2016-09-06 12 views
3

どのデバイスが使用されていても、同じ相対位置を画面に表示したいラベルがあります。例えば。ラベルはビューの上マージンから10%オフ、ビューの左マージンから30%オフに配置されます。自動レイアウトとSnapKitを使用した相対的位置付け

定数は、常に位置決めを行います。ビューの余白から150ピクセル離れているため、解像度の低いデバイスの方が、解像度が高いデバイスほど距離が小さくなります。

これをプログラムで実現する方法はありますか。 SnapKitの助けを借りて?

私のコードは、現在、次のようになります。

import UIKit 
import SnapKit 


class worldViewController: UIViewController { 
     lazy var correctFieldNew = UILabel() 

    override func viewDidLoad() { 
     super.viewDidLoad() 

      self.view.addSubview(correctFieldNew) 
      correctFieldNew.backgroundColor = UIColor.blueColor() 

      correctFieldNew.snp_makeConstraints { (make) -> Void in 
       make.size.equalTo(CGSizeMake(90, 30)) 
      } 
    } 
} 

私はここに乗数を使用する必要がありますような気がしますが、私はのようなものを書くとき、ラベルはインチを移動しません:

make.top.equalTo(self.view).multipliedBy(0.1) 
+0

いいえ考えますか?たぶん誰かが非スナップショットソリューションを知っているのでしょうか? – Jake2Finn

+1

'view.frame.height/width'を計算し、それを0と1の間の何らかの浮動小数点で掛けることができます。それをあなたのSnapKitオフセットとして使用します。 – sdasdadas

答えて

1

正しい方法は以下を使用することです:

make.top.equalTo(self.view.snp_bottom).multipliedBy(0.1) 
関連する問題