我正在构建具有内置消息应用或最新应用的UI的应用。
我使用storyboard来创建布局。对于UI的这一部分,我有以下约束:
现在我想添加完全相同的行为,例如标准消息应用程序(外部视图长大,uitextview调整大小以适应内容)。
我已经实施了
- (void)textViewDidChange:(UITextView *)textView{
if (textView == self.messageTextView) {
CGSize sizeThatShouldFitTheContent = [self.messageTextView sizeThatFits:CGSizeMake(self.messageTextView.frame.size.width, 150)];
if (sizeThatShouldFitTheContent.height <= 30) {
sizeThatShouldFitTheContent.height = 30;
}
[self.view layoutIfNeeded];
[UIView animateWithDuration:0.3 animations:^{
self.messagePanelConstraint.constant = sizeThatShouldFitTheContent.height + 14;
self.messageTextConstraint.constant = ceilf(sizeThatShouldFitTheContent.height);
[self.view layoutIfNeeded];
}];
[self setSendButtonState];
}
}
但是在那种情况下,我有“跳跃”uitextview,有时会有额外的空间,有时候不会。另外你可以看到有“魔法数字”(30是我最初的uitextview高度)和14 - 是uitextview和外部视图之间的空间。
那么有什么方法可以通过自动布局更轻松地实现这一结果吗?