[ios]UITextView setContentSize 不工作吗?

发布时间: 2015/4/11 4:38:37
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我想要改变我 UITextView 内容的大小,和我试过如下图所示:

[self.textView setContentSize:CGSizeMake(self.textView.contentSize.width, self.textView.contentSize.height+30)];

我发现它不工作。更重要的是,在一个按钮的 click 事件,看看会发生什么使。

- (IBAction)click:(id)sender {
    static int y = 0;
    UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, y, 30, 30)];
    label.text = @"hello";
    y = y+30;
    [self.textView setContentSize:CGSizeMake(self.textView.contentSize.width, self.textView.contentSize.height+30)];
    NSLog(@"%f",self.textView.contentSize.height);
    [self.textView addSubview:label];
}

其结果是 setContentSize 不工作吗?更重要的是,contentSize 只需更改为文本内容更改。

我想要知道为什么,又是那里任何的方法以更改 UITextView contentSize 手动?

单击操作的加法: 输出

2014-11-17 17:05:56.306 viewControllerAdvance[2371:607] 82.000000 
2014-11-17 17:05:56.455 viewControllerAdvance[2371:607] 82.000000
2014-11-17 17:05:56.638 viewControllerAdvance[2371:607] 82.000000
2014-11-17 17:05:56.772 viewControllerAdvance[2371:607] 82.000000
2014-11-17 17:05:56.923 viewControllerAdvance[2371:607] 82.000000
2014-11-17 17:05:57.072 viewControllerAdvance[2371:607] 82.000000

解决方法 1:

尝试修改您喜欢的方法,下面并检查是否或不符合您的要求。使用以下方式您需要添加您在滚动视图的文本视图和每当你增加文本视图高度你想增加滚动视图内容的大小

- (IBAction)click:(id)sender { 

     static int y = 0;
     UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, y, 30, 30)];
     label.text = @"hello";
     y = y+30;
     [self.textView addSubview:label];

     CGFloat fixedWidth = textView.frame.size.width;
     CGFloat dynamicHeight = textView.frame.size.height+30;

     CGSize newSize = [textView sizeThatFits:CGSizeMake(fixedWidth, dynamicHeight)];
     CGRect newFrame = textView.frame;
     newFrame.size = CGSizeMake(fixedWidth, fmaxf(newSize.height, dynamicHeight));
     textView.frame = newFrame;

 }

此外设置textview.scrollEnabled = 否 ;

官方微信
官方QQ群
31647020