#swift #view #alignment #vertical-alignment
#быстрый #Вид #выравнивание #вертикальное выравнивание
Вопрос:
Я пытаюсь выровнять текст в представлении по вертикали. Для этого я вызываю функцию contentInset, например:
override func alignCenterVertical() { let fittingSize = CGSize(width: bounds.width, height: CGFloat.greatestFiniteMagnitude) let size = sizeThatFits(fittingSize) let topOffset = (bounds.size.height - size.height * zoomScale) / 2 let positiveTopOffset = max(1, topOffset) contentInset = UIEdgeInsets(top: positiveTopOffset, left: 0, bottom: 0, right: 0) }
Но это работает только тогда, когда значение «positiveTopOffset» отрицательно. (обратный ход, который я хочу)
Я хочу именно такого поведения, но с положительным значением «positiveTopOffset», как в этой части кода здесь.
Когда я позволяю коду, подобному этому, с положительным значением «positiveTopOffset», ничего не добавляется. Почему?
большое спасибо!
Ответ №1:
Наконец-то я нашел проблему.
Я должен добавить isScrollingEnable = true
, вот так:
override func alignCenterVertical() { let fittingSize = CGSize(width: bounds.width, height: CGFloat.greatestFiniteMagnitude) isScrollingEnabled = true let size = sizeThatFits(fittingSize) let topOffset = (bounds.size.height - size.height * zoomScale) / 2 let positiveTopOffset = max(1, topOffset) contentInset = UIEdgeInsets(top: positiveTopOffset, left: 0, bottom: 0, right: 0) }