【问题标题】:Resizing UITextView - Height not adjusting调整 UITextView 的大小 - 高度不调整
【发布时间】:2013-10-09 11:39:14
【问题描述】:

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

设置

故事板上的单一视图

界面

@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

所以框架清楚地知道正确的高度,但是在显示器上所有的文本都被截断并且框不调整大小。

【问题讨论】:

    标签: ios objective-c ios7 sizetofit


    【解决方案1】:

    这是我的问题的答案。在某些时候,我已经在我的视图中检查了 Autolayout。这有效地锁定了视图,并且不允许我调整帧大小。

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

    • 转到界面生成器并打开视图
    • 点击文件检查器
    • 取消选择自动布局。

    这解决了我的问题。

    【讨论】:

    • 这非常有用。我在这上面浪费了几个小时。这个有效。谢谢。
    【解决方案2】:

    查看here 以根据您的文本_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
    }
    

    【讨论】:

    • 我想我已经尝试过了,但会再试一次。所以我会称之为只是为了得到高度?目前正在准确报告我的身高。但是框架没有调整...
    • 这样的东西应该可以工作,因为这是我们在项目中使用的
    • 用它来计算你的新高度并改变你的文本视图的框架
    猜你喜欢
    • 2013-10-20
    • 1970-01-01
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 2012-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多