UITextView自适应高度(很奇怪...)

做项目的时候经常遇到的一个问题就是文本高度处理,以前用的UILabel来显示文本,这样需要根据文本来计算UILabel的高度

实际上,使用UITextView来显示文本,不需要来计算文本的高度,文本即可自适应高度,而UITextView的文本自适应高度是

一个很奇怪的现象。代码如下:

    UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, 200, 20)];

    [self.view addSubview:textView];//写在这里,UITextView可以自适应高度

    textView.text = @"丙烯酸是化学式为C3H4O2的有机化合物,是最简单的不饱和羧酸,由一个乙烯基和一个羧基组成。纯的丙烯酸是无色澄清液体,带有特征的刺激性气味。它可与水、醇、醚和氯仿互溶,是由从炼油厂得到的丙烯制备的。[1]";

    CGSize size = textView.contentSize;

    textView.frame = CGRectMake(0, 0,size.width, size.height);

注意红色标记的代码的位置,这句代码如果放在这个地方,文本就能自适应高度,如果写在末尾,则不能自适应高度,取而代之

的是出现滚动条来显示文本,但是UITextView的高度不会改变,代码如下:

    UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, 200, 20)];

//    [self.view addSubview:textView];

    textView.text = @"丙烯酸是化学式为C3H4O2的有机化合物,是最简单的不饱和羧酸,由一个乙烯基和一个羧基组成。纯的丙烯酸是无色澄清液体,带有特征的刺激性气味。它可与水、醇、醚和氯仿互溶,是由从炼油厂得到的丙烯制备的。[1]";

    CGSize size = textView.contentSize;

    textView.frame = CGRectMake(0, 0,size.width, size.height);

    [self.view addSubview:textView];//写在这里,UITextView不能自适应高度

 

 

你可能感兴趣的:(UITextView)