Ограничение NSlayout, выровняйте мои UITextFields и UILabels - PullRequest
0 голосов
/ 09 ноября 2019

Я пытаюсь выровнять свои UITextFields и UI Labels, основываясь на правой стороне экрана для экранов всех размеров, то есть iPhone X - iPad 3-го поколения. После того, как я создаю свой ярлык, он отлично подходит для макета iPhone X, но когда я увеличиваю размер, он размещается неправильно. Я попытался использовать NSLayout, но он помещает мою UILabel в верхний правый угол экрана.

enter image description here

Я разместил фотографию более или менее, гдеЯ хочу, чтобы текст располагался относительно 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))            

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...