contentInset 只取负数

contentInset take only negative number

我正在尝试垂直对齐视图中的文本。 为此,我调用了 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”为正,没有附加内容。为什么?

非常感谢!

终于找到问题了

我必须添加 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)
}