Ограничения на ярлыке / кнопке для отображения всего текста ярлыка - PullRequest
0 голосов
/ 24 апреля 2018

Совершенно новый для Swift.

Я хочу разместить текст над кнопкой «Начать», но показать весь текст.В исходном коде у меня есть контент, который мне нравится, но я не могу показать весь текст метки.Какие изменения можно внести, чтобы он отображал весь текст?

С исходным кодом:

func setupViews() {
    self.view.addSubview(lblTitle)
    lblTitle.topAnchor.constraint(equalTo: self.view.topAnchor, constant: 150).isActive=true
    lblTitle.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive=true
    lblTitle.widthAnchor.constraint(equalToConstant: 250).isActive=true
    lblTitle.heightAnchor.constraint(equalToConstant: 80).isActive=true

    self.view.addSubview(btnGetStarted)
    btnGetStarted.heightAnchor.constraint(equalToConstant: 50).isActive=true
    btnGetStarted.widthAnchor.constraint(equalToConstant: 150).isActive=true
    btnGetStarted.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive=true
    btnGetStarted.centerYAnchor.constraint(equalTo: self.view.centerYAnchor, constant: 0).isActive=true
}

let lblTitle: UILabel = {
    let lbl=UILabel()
    lbl.text="Bacon ipsum dolor amet shankle filet mignon bacon shank frankfurter buffalo. Swine andouille burgdoggen jerky. Kevin meatball jerky tri-tip tail, biltong meatloaf fatback cupim pork chop."
    lbl.textColor=UIColor.darkGray
    lbl.textAlignment = .center
    lbl.font = UIFont.systemFont(ofSize: 46)
    lbl.numberOfLines=2
    lbl.translatesAutoresizingMaskIntoConstraints=false
    return lbl
}()

let btnGetStarted: UIButton = {
    let btn=UIButton()
    btn.setTitle("Get Started", for: .normal)
    btn.setTitleColor(UIColor.white, for: .normal)
    btn.backgroundColor=UIColor.orange
    btn.layer.cornerRadius=5
    btn.layer.masksToBounds=true
    btn.translatesAutoresizingMaskIntoConstraints=false
    btn.addTarget(self, action: #selector(btnGetStartedAction), for: .touchUpInside)
    return btn
}()

}

Ответы [ 2 ]

0 голосов
/ 24 апреля 2018

И метка, и кнопка имеют свойствоimumScaleFactor, а также свойство Bool для соответствия ширине. Попробуйте использовать это.

button.titleLabel?.minimumScaleFactor = 0.1
button.titleLabel?.numberOfLines = 2
button.titleLabel?.adjustsFontSizeToFitWidth = true

Метка имеет те же свойства для масштабирования шрифта.

 lbl.minimumScaleFactor = 0.1
 lbl.numberOfLines = 2
 lbl.adjustsFontSizeToFitWidth = true
0 голосов
/ 24 апреля 2018
  1. Попробуйте изменить height метки и добавьте topAnchor к кнопке
  2. Добавьте adjustsFontSizeToFitWidth, numberOfLines=0, sizeToFit() к этикетке

    func setupViews() {
        self.view.addSubview(lblTitle)
        lblTitle.topAnchor.constraint(equalTo: self.view.topAnchor, constant: 150).isActive=true
        lblTitle.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive=true
        lblTitle.widthAnchor.constraint(equalToConstant: 250).isActive=true
        lblTitle.heightAnchor.constraint(equalToConstant: 250).isActive=true
    
        self.view.addSubview(btnGetStarted)
        btnGetStarted.topAnchor.constraint(equalTo: lblTitle.bottomAnchor, constant: 20).isActive=true
        btnGetStarted.heightAnchor.constraint(equalToConstant: 50).isActive=true
        btnGetStarted.widthAnchor.constraint(equalToConstant: 150).isActive=true
        btnGetStarted.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive=true
        btnGetStarted.centerYAnchor.constraint(equalTo: self.view.centerYAnchor, constant: 0).isActive=true
    }
    
    let lblTitle: UILabel = {
        let lbl=UILabel()
        lbl.text="Bacon ipsum dolor amet shankle filet mignon bacon shank frankfurter buffalo. Swine andouille burgdoggen jerky. Kevin meatball jerky tri-tip tail, biltong meatloaf fatback cupim pork chop."
        lbl.textColor=UIColor.darkGray
        lbl.textAlignment = .center
        lbl.font = UIFont.systemFont(ofSize: 46)
        lbl.adjustsFontSizeToFitWidth = true
        lbl.numberOfLines=0
        lbl.sizeToFit()
        lbl.translatesAutoresizingMaskIntoConstraints=false
        return lbl
    }()
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...