gpt4 book ai didi

iphone - UITableViewCell 动态高度与标签

转载 作者:行者123 更新时间:2023-12-03 20:21:04 27 4
gpt4 key购买 nike

我使用 NIB 文件创建了一个 UITableViewCell。其中有 1 个标签将包含一条推文。所以它需要是一个动态高度。还有一个 timeAgo 标签必须位于推文标签下方。

我正在尝试使用尺寸为框架的东西,但我无法得到完美的解决方案..我在 UITableViewCell 文件中的 drawrect 方法中执行此操作。

self.tweet.lineBreakMode = UILineBreakModeWordWrap;
self.tweet.numberOfLines = 0;
self.tweet.font = [UIFont fontWithName:@"Arial" size:13.0f];
[self.tweet sizeToFit];

CGFloat tweetHeight = self.tweet.frame.size.height;

self.timeAgo.lineBreakMode = UILineBreakModeWordWrap;
self.timeAgo.numberOfLines = 0;
self.timeAgo.font = [UIFont fontWithName:@"Arial" size:11.0f];
[self.timeAgo sizeToFit];

CGFloat timeAgoHeight = self.timeAgo.frame.size.height;

self.timeAgo.frame = CGRectMake(88, tweetHeight, 100, timeAgoHeight + 10.0f);

我还尝试了在教程中找到的 stringhelper。

:

- (CGFloat)RAD_textHeightForSystemFontOfSize:(CGFloat)size {

我的 HeightForRow 方法也已经不同,因为我使用不同的单元格样式。目前,我为每种单元格样式返回一个硬值,但这也需要更改为单元格高度。

最佳答案

请参阅本教程,http://www.cimgf.com/2009/09/23/uitableviewcell-dynamic-height/

诀窍是让标签随着单元格的大小而增长,而不是您只需设置单元格的大小,单元格就会随之增长。

设置 timeAgo 标签,使其与单元格底部对齐。

通过IB将tweet的numberOfLines设置为0,删除所有绘制代码​​,仅实现以下内容:

- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
id item = [self.item objectAtIndex:indexpath.row];

CGFloat height = 85.0f;

if ([item isKindOfClass:[Tweet class]]) {
Tweet *tweet = (Tweet *)item;
CGSize titleSize = [tweet.tweet sizeWithFont:[UIFont fontWithName:@"Arial" size:13.0f] constrainedToSize:CGSizeMake(260.0f, MAXFLOAT)];

// adde the 24 pixels to get the height plus the time ago label.
height = titleSize.height + 24.0f;

} else if( [item isKinfOfClass:[SC_Release class]]) {
height = 65.0f;
}

return height;
}

关于iphone - UITableViewCell 动态高度与标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7281467/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com