Иметь авторазмер текста в viewcontroller - PullRequest
0 голосов
/ 12 сентября 2018

Может кто-нибудь сказать, почему этот код не изменяет размер текста в descLabel автоматически? Я попытался установить для numberOfLines значение 0, и я установил lineBreakMode, но это почти ничего не решает. Этот подход невозможен в ViewController или я делаю что-то совершенно не так?

class SingleEventViewController: UIViewController {

var thisEvent: Event
var eventDescription: String?

let descLabel: UILabel = {
    let label = UILabel()
    label.font = UIFont.systemFont(ofSize: 16)
    label.text = "Beschreibung"
    label.textColor = .black
    label.numberOfLines = 0
    label.lineBreakMode = .byWordWrapping
    return label
}()  

let participateButton: UIButton = {
    let button = UIButton()
    button.backgroundColor = CalendarSettings.Colors.buttonBG
    button.setTitle("Teilnehmen", for: .normal)
    button.setTitleColor(CalendarSettings.Colors.darkRed, for: .normal)
    return button
}()

//MARK: - Init & View Loading
init(event: Event) {
    thisEvent = event
    super.init(nibName: nil, bundle: nil)
    setupDefaultValues()
}

override func viewDidLoad() {
    super.viewDidLoad()
    view.backgroundColor = .white
    applyDefaultValues()
    setupViews()
    confBounds()
}

//MARK: - Setup
func setupDefaultValues() {
    eventDescription = thisEvent.eventDescription
}

func applyDefaultValues() {
    descLabel.text = eventDescription
}

func setupViews() {
    view.addSubview(descLabel)
    view.addSubview(participateButton)

    let tabbarHeight = self.tabBarController?.tabBar.frame.height ?? 0
    descLabel.anchor(top: titleLabel.bottomAnchor, left: view.leftAnchor, bottom: nil, right: nil, paddingTop: 5, paddingLeft: 10, paddingBottom: 0, paddingRight: 0, width: 0, height: 0)
    participateButton.anchor(top: nil, left: view.leftAnchor, bottom: view.bottomAnchor, right: view.rightAnchor, paddingTop: 0, paddingLeft: 0, paddingBottom: tabbarHeight, paddingRight: 0, width: 0, height: 50) 
}

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

Для автоматического изменения размера вы должны задать для него левое / ведущее и правое / конечное ограничение или фиксированную ширину

descLabel.anchor(top: titleLabel.bottomAnchor, left: view.leftAnchor, bottom: nil, rightview.rightAnchor, paddingTop: 5, paddingLeft: 10, paddingBottom: 0, paddingRight: 0, width: 0, height: 0)
0 голосов
/ 12 сентября 2018

Если это размер шрифта, который вы пытаетесь изменить, чтобы он помещался в метке, попробуйте AdjustFontSizeToWidth, но если это метка, которую вы хотите изменить, попробуйте sizeToFit ().

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