我想更改我的UITextView的内容大小,我尝试如下:
[self.textView setContentSize:CGSizeMake(self.textView.contentSize.width, self.textView.contentSize.height+30)];
我发现它不起作用。更重要的是,我通过按钮的点击事件来看看会发生什么。
- (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?
ADDITION:点击操作的输出
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
答案 0 :(得分:0)
尝试修改您的方法,如下所示,检查它是否符合您的要求。要使用以下方法,您需要在滚动视图上添加文本视图,每当您增加文本视图的高度时,您都希望增加滚动视图的内容大小
- (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 = NO;