Сделать translatesAutoresizingMaskIntoConstraints false, когда я добавил ограничения - PullRequest
0 голосов
/ 29 декабря 2018

Я делаю вид программно, и когда я хочу добавить автоматическую компоновку к представлению, больно каждый раз устанавливать translatesAutoresizingMaskIntoConstraints false.Сейчас я ищу любое решение, чтобы облегчить жизнь.Есть ли какое-либо расширение или класс, которые отключают его каждый раз, когда я хочу добавить ограничения?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 29 декабря 2018

Вы можете расширить класс UIView для ограничений, чтобы он распространялся на все UIControls и пользовательские UIViews.

extension UIView {
    func anchor(_ anotherView: UIView) {
        anotherView.translatesAutoresizingMaskIntoConstraints = false
        self.addSubview(anotherView)
        anotherView.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true
        anotherView.topAnchor.constraint(equalTo: self.topAnchor).isActive = true
        anotherView.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true
        anotherView.bottomAnchor.constraint(equalTo: self.bottomAnchor).isActive = true
    }
}

Пример:

func setupView() {
    self.view.anchor(self.someImageView)
}
0 голосов
/ 29 декабря 2018

Я думаю, вы могли бы добавить эту строку translatesAutoresizingMaskIntoConstraints в подкласс вашего представления.Например, вы обычно используете UITextField, или говорите UIView, наверняка у вас есть такие базовые классы, например:

import UIKit

/// Another Customized/Subclassed UIButton.
class BaseButton: UIButton {

    /// override init
    override init(frame: CGRect) {
        super.init(frame: frame)

            self.translatesAutoresizingMaskIntoConstraints = false
       }
    }

    /// override coder
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

Или еще лучше, могу ли я предложить, этот ниже?Я использую SnapKit для всех своих проектов уровня производства.

https://github.com/SnapKit/SnapKit

Надеюсь, это поможет!

...