Ios 调整UITextView的大小-高度未调整

Ios 调整UITextView的大小-高度未调整,ios,objective-c,ios7,sizetofit,Ios,Objective C,Ios7,Sizetofit,这应该很容易,但出于某种原因,它对我不起作用。我想调整文本框的大小,最好在底部有一些填充。现在,我会满足于适当调整大小 设置 我的故事板上的单一视图 接口 @property (weak, nonatomic) IBOutlet UITextView *messageTextBox; 实施 - (void)viewDidLoad { [super viewDidLoad]; _messageTextBox.text = _message.body; [_messageT

这应该很容易,但出于某种原因,它对我不起作用。我想调整文本框的大小,最好在底部有一些填充。现在,我会满足于适当调整大小

设置

我的故事板上的单一视图

接口

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

- (void)viewDidLoad
{
    [super viewDidLoad];
    _messageTextBox.text = _message.body;
    [_messageTextBox sizeToFit];  
}
我尝试了几种不同的解决方案,包括改变框架高度和其他用户建议

这是使用ios7和xcode 5,但我不明白为什么这样一个基本函数会有问题

更让我困惑的是,我在sizeToFit之后记录了框架高度和内容大小。我的结果是:

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
因此,框架清楚地知道正确的高度,但在显示屏上,所有文本都被截断,框不调整大小。

根据您的文本
\u message.body
来计算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
}
根据文本
\u message.body
,查看计算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
}

这是我的问题的答案。在某个时候,我在视图中勾选了Autolayout。这实际上锁定了视图,不允许我调整帧大小

如果发现框架未调整大小的类似问题,请尝试以下操作:

  • 转到interface builder并打开视图
  • 单击文件检查器
  • 取消选择自动布局

这解决了我的问题。

以下是我问题的答案。在某个时候,我在视图中勾选了Autolayout。这实际上锁定了视图,不允许我调整帧大小

如果发现框架未调整大小的类似问题,请尝试以下操作:

  • 转到interface builder并打开视图
  • 单击文件检查器
  • 取消选择自动布局

这解决了我的问题。

我想我已经试过了,但会再试一次。所以我就叫它来测量高度?我的身高目前被准确地报告了。但是框架没有调整…像这样的东西应该可以工作,因为这是我们在项目上使用的使用它来计算新高度并更改文本视图的框架我想我已经尝试过了,但会再试一次。所以我就叫它来测量高度?我的身高目前被准确地报告了。但是框架没有调整…像这样的东西应该可以工作,因为这是我们在项目上使用的使用它来计算新高度并更改文本视图的框架这非常有用。我在这上面浪费了好几个小时。这个成功了。谢谢。这真是太有用了。我在这上面浪费了好几个小时。这个成功了。非常感谢。