iOS:UITextView设置高度等于内容高度 [英] iOS: UITextView set height equal to content height
问题描述
我有一个禁用滚动的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屋!