![](/img/trans.png)
[英]how to set UITextView height dynamically inside a custom UITableViewCell with autolayout
[英]Autolayout for UITextview inside custom UITableviewcell
我在自定義UITextviewCell中有一個UITextView。 我希望單元格根據UITextview的內容增加大小。 我已將textview的頂部,底部,右側,左側固定到單元格的內容視圖。 當我用文本預填充textview時,它可以正常工作。 當我用鍵盤輸入文字時,它不起作用。 在我的自定義單元中。
UITextView * textView = [[UITextView alloc]init];
[textView setTranslatesAutoresizingMaskIntoConstraints:NO];
[textView setBackgroundColor:[UIColor redColor]];
[textView setScrollEnabled:NO];
[textView setDelegate:self];
[self.contentView addSubview:textView];
NSLayoutConstraint *xConstrain = [NSLayoutConstraint constraintWithItem:textView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0];
NSLayoutConstraint *yConstrain = [NSLayoutConstraint constraintWithItem:textView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeTop multiplier:1.0 constant:0];
NSLayoutConstraint *rightConstrain = [NSLayoutConstraint constraintWithItem:textView attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeRight multiplier:1.0 constant:0];
NSLayoutConstraint *bottomConstrain = [NSLayoutConstraint constraintWithItem:textView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeBottom multiplier:1.0 constant:0];
[self.contentView addConstraint:xConstrain];
[self.contentView addConstraint:yConstrain];
[self.contentView addConstraint:rightConstrain];
[self.contentView addConstraint:bottomConstrain];
在我的tableview控制器中添加以下行
-(void)viewdidload
{
self.tableView.rowHeight = UITableViewAutomaticDimension;
self.tableView.estimatedRowHeight = 100.0f ;
}
您可以在這里做幾件事,想到的是:
•輸入文本時,請跟蹤UITextView
的高度,就像保持“舊高度”變量和“新高度”變量一樣。 要獲得“新高度”,您可以使用UITextView
的sizeThatFits
方法,並將其高度設置為例如1000(足夠大以至於不會限制您的結果)。
•當新的高度與舊的高度不同時(較小或較大),您將重新加載容納正在使用的UITextView
的單元格。 您可以先設置[cell setNeedsLayout]
,然后設置[cell layoutIfNeeded]
以確保其大小調整。
我以為這應該可行,請告訴我是否可行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.