Относительное позиционирование с использованием автоматического макета и SnapKit

У меня есть ярлык, который я хочу иметь одинаковое относительное положение на экране, независимо от того, какое устройство используется. Например. метка располагается на расстоянии 10 % от верхнего края представления и 30 % от левого поля представления.

Константа всегда будет выполнять позиционирование, например. 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) 

person Jake2Finn    schedule 06.09.2016    source источник
comment
Без понятия? Может быть, кто-то знает решение без Snapkit?   -  person Jake2Finn    schedule 10.09.2016
comment
Вы можете просто вычислить view.frame.height/width и умножить его на некоторое число с плавающей запятой от 0 до 1. Затем используйте это как смещение SnapKit.   -  person sdasdadas    schedule 06.10.2016


Ответы (1)


Правильный способ - использовать:

make.top.equalTo(self.view.snp_bottom).multipliedBy(0.1) 
person Grzegorz Krukowski    schedule 25.11.2016