簡體   English   中英

自定義UITableviewcell中的UITextview自動布局

[英]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的高度,就像保持“舊高度”變量和“新高度”變量一樣。 要獲得“新高度”,您可以使用UITextViewsizeThatFits方法,並將其高度設置為例如1000(足夠大以至於不會限制您的結果)。

•當新的高度與舊的高度不同時(較小或較大),您將重新加載容納正在使用的UITextView的單元格。 您可以先設置[cell setNeedsLayout] ,然后設置[cell layoutIfNeeded]以確保其大小調整。

我以為這應該可行,請告訴我是否可行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM