我正在尝试动态更改 UITextView 的高度:
... UITextView* textView; ...
CGRect textViewNewFrame = CGRectMake(textView.frame.origin.x, textView.frame.origin.y, textView.frame.size.width, 130);
textView.frame = textViewNewFrame;
在 IB 中,我有一个与 UITextView 顶部对齐的 UIButton。UIButton 高 130px;UITextView 是,比如说,150px 高。
如果我运行上面的代码,UITextView 最终会变得 44px 太短。我必须将我的 CGRectMake 行更改为结束,
..., 130 + 44);
但是,如果在 IB 中我将 UITextView 的高度“硬编码”为 130 像素,则 UIButton 和 UITextView 会同时呈现顶部和底部对齐(它们的高度相同)。
因此,当动态更改 UITextView 的框架高度时,我必须添加 44,但不是在通过 IB“静态”设置其高度时。
奇怪的是,UILabel 并没有像这样行为不端(动态调整大小时我不必添加 44px)。
我知道 44 是 IB 中的一个神奇数字(导航栏的高度等),但为什么我需要添加它?我错过了什么/做错了什么,或者这只是一个异常?我担心这一定是一种常见的操作,但我找不到其他人提出相同的问题并得出相同的结论。