У меня возникла проблема с использованием якорей в быстрой модификации UIButton
и UILabel
.Авторезисторные анкеры не устанавливают подзоны в углы
мой взгляд прямо сейчас:
Я хочу этикетки и кнопки, чтобы заполнить весь вид и оставить оставить пустое пространство («OpenSpace») между ними. Вот мой код:
import UIKit
class standardLabel: UIView {
private var label: UILabel!
private var button: UIButton!
let openSpace: CGFloat = 4.0
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
label = UILabel()
button = UIButton()
label.backgroundColor = cLightBlue
label.textColor = cWhite
label.textAlignment = .center
label.font = fBigFont
button.backgroundColor = cWhite
button.setTitleColor(cDarkBlue, for: .normal)
button.titleLabel?.font = fBigCleanFont
label.translatesAutoresizingMaskIntoConstraints = false
button.translatesAutoresizingMaskIntoConstraints = false
addSubview(label)
addSubview(button)
setConstraints()
//layer.masksToBounds = true
//layer.cornerRadius = cornerRad
backgroundColor = UIColor.brown//superview?.backgroundColor
}
func setTextLabel(text: String) -> Void {
label.text = text
}
func setTextButton(text: String) -> Void {
button.setTitle(text, for: .normal)
}
private func setConstraints() -> Void {
let margins = layoutMarginsGuide
label.topAnchor.constraint(equalTo: margins.topAnchor).isActive = true
label.bottomAnchor.constraint(equalTo: margins.bottomAnchor).isActive = true
label.leadingAnchor.constraint(equalTo: margins.leadingAnchor).isActive = true
button.topAnchor.constraint(equalTo: margins.topAnchor).isActive = true
button.bottomAnchor.constraint(equalTo: margins.bottomAnchor).isActive = true
button.trailingAnchor.constraint(equalTo: margins.trailingAnchor).isActive = true
label.trailingAnchor.constraint(equalTo: button.leadingAnchor, constant: openSpace).isActive = true
label.widthAnchor.constraint(equalTo: button.widthAnchor).isActive = true
}
}
ли я сделать ошибку установки якоря или же это порождают проблемы, потому что я создал отдельный класс?
Как вы добавляете это для просмотра контроллера? –
У меня есть viewcontroller с uiscrollview внутри. В scrollview я вставил отдельный вид с выходом и инициализировал его как «стандартную метку». Вы понимаете, или вы хотите, чтобы я отправил скриншот моей установки? –
Если вы не хотите видеть коричневые части, используйте self вместо layoutMarginsGuide. –