iOS:UITextView设置高度等于内容高度 [英] iOS: UITextView set height equal to content height

查看:1377
本文介绍了iOS:UITextView设置高度等于内容高度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个禁用滚动的UITextView,我需要设置UITextView的高度以匹配文本内容的高度。我尝试了各种方法,发现互联网没有结果。这是我的UITextView布局代码:

   - (void)viewDidLayoutSubviews {
// UITextView被命名jobDescrip
jobDescrip.scrollEnabled = NO;
[jobDescrip sizeToFit];
[jobDescrip layoutIfNeeded];
}

我还在viewDidAppear:方法中尝试了这段代码。有人可以使用自动布局为iOS 7.0及更高版本的问题发布代码吗?

解决方案

你试过这个吗?我添加了一个按钮,其动作方法中包含流动的代码,我可以看到高度已更改为文本高度。

  CGSize size = [self.textView systemLayoutSizeFittingSize:self.textView.contentSize]; 
CGRect frame = self.textView.frame;
frame.size.height = size.height;
self.textView.frame = frame;

修改



<我为superview约束添加了一个底部空间并将其设置为IBOutlet属性,然后在viewDidAppear中我更改了约束常量。

  - (void)viewDidAppear:(BOOL)动画
{
[super viewDidAppear:animated];
self.textView.contentInset = UIEdgeInsetsZero;
CGSize size = [self.textView systemLayoutSizeFittingSize:self.textView.contentSize];
self.heightConstraint.constant - = size.height - self.textView.frame.size.height;
self.textView.scrollEnabled = NO;
[self.textView setNeedsUpdateConstraints];
}


I have a UITextView with disabled scrolling and I need to set the height of the UITextView to match the height of the text content. I have tried various methods found the internet with no results. This is my code for the layout of the UITextView:

-(void) viewDidLayoutSubviews {
    // UITextView is named jobDescrip
    jobDescrip.scrollEnabled = NO;
    [jobDescrip sizeToFit];
    [jobDescrip layoutIfNeeded];
}

I have also tried this code in the viewDidAppear: method. Can someone please post code for an iOS 7.0 and later solution to this problem using auto layout?

解决方案

Have you tried this? I added a button, with the flowing code in its action method I can see the height is changed to the text height.

CGSize size = [self.textView systemLayoutSizeFittingSize:self.textView.contentSize];
CGRect frame = self.textView.frame;
frame.size.height = size.height;
self.textView.frame = frame;

Edit

I added a bottom space to superview constraint and set it as IBOutlet property,then in viewDidAppear I changed the constraint constant.

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    self.textView.contentInset = UIEdgeInsetsZero;
    CGSize size = [self.textView systemLayoutSizeFittingSize:self.textView.contentSize];
    self.heightConstraint.constant -= size.height - self.textView.frame.size.height;
    self.textView.scrollEnabled = NO;
    [self.textView setNeedsUpdateConstraints];
}

这篇关于iOS:UITextView设置高度等于内容高度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆