Я хочу установить вертикальное выравнивание на моем UITextView
.Текстовое представление доступно для редактирования, а прокрутка отключена:
let textView = UITextView(frame: frame)
textView.backgroundColor = .clear
textView.attributedText = myAttributedString
textView.isUserInteractionEnabled = true
textView.isEditable = true
textView.allowsEditingTextAttributes = true
textView.isScrollEnabled = false
textView.textContainerInset = .zero
self.addSubview(textView)
Итак, я хотел бы сделать что-то вроде:
textView.verticalAlignment = .center
Я уже пытался разделить текстовое представление на подклассы и добавить атрибут вродеthis:
class MyTextView: UITextView {
public var verticalAlignment: UIControl.ContentVerticalAlignment = .center {
didSet {
let topCorrection: CGFloat
switch verticalAlignment {
case .center:
topCorrection = (bounds.size.height - contentSize.height * zoomScale) / 2.0
case .bottom:
topCorrection = (bounds.size.height - contentSize.height * zoomScale)
case .top, .fill:
topCorrection = 0
@unknown default:
topCorrection = 0
}
contentInset.top = max(0, topCorrection)
}
}
}
Но, похоже, не работает с isScrollEnabled
, установленным на false
.
Любое другое решение, которое я нашел в интернете, тоже не сработало, и янемного безнадежно ... Вы можете мне помочь?
Спасибо