2016-03-05 313 views
0

我在UITableViewCell中有一個標籤,我希望我的身高TableViewCell是根據標籤高度自動調整的。TableViewCell自動高度

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    TWTTweetTableViewCell *cell = (TWTTweetTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"TWTTweetTableViewCell" forIndexPath:indexPath];

TWTTweet *tweet = self.tweets[indexPath.row]; 
cell.tweetMessage.text = tweet.tweetMessage; 
cell.timestamp.text = [tweet howLongAgo]; 

cell.tag = indexPath.row; 

TWTUser *user = [[TWTTwitterAPI sharedInstance] userForId:tweet.userId]; 
cell.user.text = user.username; 

return cell; 

}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { return 165; } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { //Tapped a tweet }

+0

您使用自動佈局??? –

+0

是的.. @ El Capitan – revi

+0

不只是在heightForRowAtIndexPath中返回'UITableViewAutomaticDimension' ..但條件是你的約束應該正確附加 –

回答

2

用於動態地高度的UITableViewCell在viewDidLoad中設置每個內容高度

_tableView.estimatedRowHeight = 100.0; 
_tableView.rowHeight = UITableViewAutomaticDimension; 

這一套自動細胞高度

讓我知道,如果這個工程...

https://stackoverflow.com/a/35055320/5085393

或方法自動尺寸

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
return UITableViewAutomaticDimension; 
} 

-(CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
return 100; 
} 
+0

不工作myFriend。@ bhargav bajani – revi

+0

replace return 165;與UITableViewAutomaticDimension in heightForRowAtIndexPath方法 –

+0

不工作 - (CGFloat)tableView:(UITableView *)tableView UITableViewAutomaticDimension:(NSIndexPath *)indexPath {0} {0} {0} {0}返回UITableViewAutomaticDimension; } – revi

0

設置標籤動態

刪除

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
return 165; 
} 

**設置錶行高度**

_tableView.estimatedRowHeight = 150.0; 
_tableView.rowHeight = UITableViewAutomaticDimension; 

而且還CHEAK標籤高度的約束沒有設置

0

爲了得到動態更新的高度

-add這些方法

===========

Objective C

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return UITableViewAutomaticDimension; 
} 

-(CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return UITableViewAutomaticDimension; 
} 

======

斯威夫特

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
    return UITableViewAutomaticDimension 
} 

func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
    return UITableViewAutomaticDimension 
}