这应该很容易,但由于某种原因,它不适合我。我想调整文本框的大小,理想情况下底部有一些填充。现在,我会安排妥善调整大小。
设置
我的故事板上的单个视图
接口
@property (weak, nonatomic) IBOutlet UITextView *messageTextBox;
实施
- (void)viewDidLoad
{
[super viewDidLoad];
_messageTextBox.text = _message.body;
[_messageTextBox sizeToFit];
}
我尝试了几种不同的解决方案,包括更改框架的高度和其他用户建议......
这是使用ios7和xcode 5,但我不明白为什么这样的基本功能会出现问题。
为了增加我的困惑,我在sizeToFit之后记录了帧高和contentsize。我的结果是:
2013-10-02 18:40:20.803 narg[21467:a0b] H of the frame: 618.000000
2013-10-02 18:40:20.804 narg[21467:a0b] W of the frame: 469.000000
2013-10-02 18:40:20.804 narg[21467:a0b] Reported H of contentSize property on object 42.000000
因此框架清楚地知道正确的高度,但在显示屏上所有文字都是截止的,并且框不会调整大小。
答案 0 :(得分:4)
以下是我的问题的答案。在某些时候,我已经根据我的观点检查了Autolayout。这有效地锁定了视图,并且不允许我调整帧大小。
如果您发现框架未调整大小的类似问题,请尝试以下操作:
这解决了我的问题。
答案 1 :(得分:0)
根据您的文字_message.body
,查看here来计算UITextView的优质框架。您可以添加间隙以获得如下所示的底部填充:
- (CGFloat)textViewHeightForAttributedText:(NSAttributedString*)text andWidth:(CGFloat)width
{
UITextView *calculationView = [[UITextView alloc] init];
[calculationView setAttributedText:text];
CGSize size = [calculationView sizeThatFits:CGSizeMake(width, FLT_MAX)];
return size.height + 50; // 5O is your gap for example
}