2013-10-02 57 views
1

这应该是如此简单,但由于某种原因,它不适合我。我想调整我的文本框的大小,最好在底部填充一些填充。现在我会妥善调整大小。调整UITextView的大小 - 高度不调整

的设置

在我的故事板的单一视图

接口

@property (weak, nonatomic) IBOutlet UITextView *messageTextBox; 

实施

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    _messageTextBox.text = _message.body; 
    [_messageTextBox sizeToFit]; 
} 

我尝试了好几种不同的解决方案,包括改变帧这里等用户的建议的高度...

这是使用ios7和Xcode的5,但我不明白为什么会有这样的一个问题基本功能。

为了补充我的疑惑,我已经在sizeToFit之后记录了框架高度和contentize。我的结果是:

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 

所以框架清楚的知道正确的高度,但在显示器上所有的文字被切断与框不调整大小。

回答

4

这是我的问题的答案。在某些时候,我根据自己的观点检查了Autolayout。这有效地锁定了视图,并且不允许我调整框架大小。

如果您看到了类似的问题,该框架不调整尝试以下方法:

  • 进入界面生成器并打开视图
  • 在文件上单击检查
  • 取消自动布局。

这解决了我的问题。

+1

的框架这是如此难以置信的帮助。我在这上面浪费了几个小时。这一个工作。谢谢。 –

+0

现在为编程替代... – CQM

0

看看here来计算UITextView的好帧,具体取决于您的文本_message.body。你可以添加一个空白来获得这样的底部填充:

- (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 
} 
+0

我想我已经尝试过,但会再试一次。所以我会打电话给这只是为了获得高度?我的身高目前正在准确报告。但框架不调整...... – mday

+0

这样的事情应该工作,因为这是我们在项目中使用 – timpone

+0

用它来计算您的新的高度,并改变你的文本视图 –