Я пытаюсь выровнять свои UITextFields и UI Labels, основываясь на правой стороне экрана для экранов всех размеров, то есть iPhone X - iPad 3-го поколения. После того, как я создаю свой ярлык, он отлично подходит для макета iPhone X, но когда я увеличиваю размер, он размещается неправильно. Я попытался использовать NSLayout, но он помещает мою UILabel в верхний правый угол экрана.
Я разместил фотографию более или менее, гдеЯ хочу, чтобы текст располагался относительно UITextField и UIButton сверху и снизу (на самом деле я хочу, чтобы правые концы «Забыли пароль» высвечивали «Пароль» и «Имя пользователя» справа.
override func viewDidLoad() {
super.viewDidLoad()
//create phrase 'Forgot your password?'
let phraseTwo = createTxt(fontColor: .white, xco: self.view.frame.width * (193/375), yco: self.view.frame.height * (515/812), widthLength: self.view.frame.width * (160/375), heightLength: self.view.frame.height * (19/812), phrase: "Forgot your password?", fontName: "OpenSans-Light", fontSize: 14)
}
//create text
func createTxt (fontColor: UIColor , xco: CGFloat, yco: CGFloat, widthLength: CGFloat, heightLength: CGFloat, phrase : String, fontName: String, fontSize: CGFloat) {
let label = UILabel(frame: CGRect(x: xco, y: yco, width: widthLength, height: heightLength))
label.textAlignment = .center
label.text = phrase
label.font = UIFont(name: label.font.fontName, size: fontSize)
label.textAlignment = .center
label.sizeToFit() //fit label exactly to the size of the text in it
print(label.frame.size) //show size of the label frame
//vertically center
if xco == 0 {
let otherLabel = UILabel (frame:CGRect (x: self.view.frame.width/2 - label.frame.size.width/2, y: yco, width: label.frame.size.width , height: label.frame.size.height))
otherLabel.text = phrase
otherLabel.textColor = fontColor
otherLabel.font = UIFont(name: otherLabel.font.fontName, size: fontSize)
otherLabel.textAlignment = .center
otherLabel.backgroundColor = .red
self.view.addSubview(otherLabel)
} else {
let otherLabel = UILabel (frame:CGRect (x: xco, y: yco, width: label.frame.size.width , height: label.frame.size.height))
otherLabel.text = phrase
otherLabel.textColor = fontColor
otherLabel.font = UIFont(name: otherLabel.font.fontName, size: fontSize)
otherLabel.textAlignment = .center
otherLabel.backgroundColor = .red
self.view.addSubview(otherLabel)
otherLabel.translatesAutoresizingMaskIntoConstraints = false
view.addConstraint(NSLayoutConstraint(item: otherLabel, attribute: .trailing, relatedBy: .equal, toItem: view, attribute: .trailing, multiplier: 1, constant: 38))
}
}