我正在尝试使用从sizeThatFits
检索的适当高度将UITextView垂直居中。大量其他答案表明这是计算此值的最合适方法。
(请注意,我已经尝试过使用普通字符串和属性字符串,并且都表现出相同的行为)。
无论我尝试什么(即使使用属性字符串并将字体大小或行高设置为更大或更小),它总是只显示一定数量的文本字符截断(在这种情况下为3行,并且总是完全相同) )。我想念什么?
_textView.text = [_collectionDescription lowercaseString];
_textView.font = [UIFont fontLight:22];
_textView.textColor = [UIColor whiteColor];
_textView.textAlignment = NSTextAlignmentCenter;
_constraintTextViewHeight.constant = ceilf([_textView sizeThatFits:CGSizeMake(_textView.frame.size.width, FLT_MAX)].height);
[_textView setNeedsDisplay];
[_textView updateConstraints];
最佳答案
与自动版式一样,您必须执行以下操作:
[_textInfoView layoutIfNeeded];
(甚至根本不需要
setNeedsDisplay
)。因此,充分发挥作用:
_textView.text = [_collectionDescription lowercaseString];
_textView.font = [UIFont fontLight:22];
_textView.textColor = [UIColor whiteColor];
_textView.textAlignment = NSTextAlignmentCenter;
_constraintTextViewHeight.constant = ceilf([_textView sizeThatFits:CGSizeMake(_textView.frame.size.width, FLT_MAX)].height);
[_textView layoutIfNeeded];
[_textView updateConstraints];