我在UITableViewCell中有一个标签,我希望我的高度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 :(得分:4)
表示在viewDidLoad中设置的UITableViewCell的动态高度
_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;
}
答案 1 :(得分:0)
获取动态更新的身高
- 添加这些方法
===========
- (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
}
答案 2 :(得分:0)
First go to the UITableViewCell
label's attribute inspector on the storyboard
and set the Line Break property to Word Wrap. Now the constraint's for the label are important.
Give only Top, Bottom, Leading, Trailing constraint, this way the cell can adjust its height based on the content of the label.
Then either in your viewDidLoad
or the place where you set delegate
for the tableview add the below code,
self.yourTableView.estimatedRowHeight = 52.0; // Your desired minimum height for the cell.
self.yourTableView.rowHeight = UITableViewAutomaticDimension;