Набор содержимого принимает только отрицательное число

#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) }