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)
いいえ考えますか?たぶん誰かが非スナップショットソリューションを知っているのでしょうか? – Jake2Finn
'view.frame.height/width'を計算し、それを0と1の間の何らかの浮動小数点で掛けることができます。それをあなたのSnapKitオフセットとして使用します。 – sdasdadas