gpt4 book ai didi

iphone - UIlabel 在滚动 UiTableView 时缩小

转载 作者:行者123 更新时间:2023-12-03 19:18:07 24 4
gpt4 key购买 nike

我在 UICell 旁边有两个 UILabel,其中包含动态文本,因此我需要根据内容调整其框架大小,为此我使用 [string sizeWithFont] 方法计算 TableView 内标签 View 框架的高度 heightForRowAtIndexPath 根据标签高度设置单元格的高度。现在的问题是,当我滚动表格时,单元格内部的标签开始收缩,如果我删除 [label sizeToFit] 方法,它不会收缩,但从此我的标签开始重叠,看起来非常困惑。有错误的地方请指教..

这是我的 cellRowAtIndexPath 方法的代码

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"cell");
BOOL ente = FALSE;

static NSString *CellIdentifier = @"CustomCell";

CustomCell *cell = (CustomCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {

NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:nil options:nil];

for (id currentObject in topLevelObjects){
if ([currentObject isKindOfClass:[UITableViewCell class]]){
cell = (CustomCell *) currentObject;
ente = TRUE;
break;
}
}
}
/*
[cell.title sizeToFit];
[cell.dataTime sizeToFit];

CGSize size1 = [[mainEventArray objectAtIndex:[indexPath row]] sizeWithFont:[UIFont systemFontOfSize:13.0f] constrainedToSize:CGSizeMake(275, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];

cell.title.frame = CGRectMake(50, 6, size1.width, size1.height);


CGSize size2 = [[mainEventTimeArray objectAtIndex:[indexPath row]] sizeWithFont:[UIFont systemFontOfSize:11.0f] constrainedToSize:CGSizeMake(275, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];

cell.dataTime.frame = CGRectMake(50, 24, size2.width, size2.height);

*/
cell.title.text = [mainEventArray objectAtIndex:[indexPath row]];
cell.dataTime.text = [mainEventTimeArray objectAtIndex:[indexPath row]];



//if (ente) {
// NSLog(@"helllloo");

[cell.title sizeToFit];
[cell.dataTime sizeToFit];
//}


return cell;
}

以及 heightForRowAtIndexPath 方法

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{


static NSString *CellIdentifier = @"CustomCell";

CustomCell *cell = (CustomCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

{

if (cell == nil) {

NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:nil options:nil];

for (id currentObject in topLevelObjects){
if ([currentObject isKindOfClass:[UITableViewCell class]]){
cell = (CustomCell *) currentObject;
break;
}
}
}
}

CGSize size1 = [[mainEventArray objectAtIndex:[indexPath row]] sizeWithFont:[UIFont systemFontOfSize:13.0f] constrainedToSize:CGSizeMake(230, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];

cell.title.frame = CGRectMake(0, 0, size1.width, size1.height);


CGSize size2 = [[mainEventTimeArray objectAtIndex:[indexPath row]] sizeWithFont:[UIFont systemFontOfSize:11.0f] constrainedToSize:CGSizeMake(230, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];

cell.dataTime.frame = CGRectMake(0, 0, size2.width, size2.height);


//NSLog(@"%f", size1.height + size2.height + 20);

return size1.height + size2.height + 20;

//NSString *str = [heights_ objectAtIndex:[indexPath row]];

// return [str floatValue] ;

}

最佳答案

而不是进行自己的定制。尝试使用动态 uitableviewcell 高度。您会发现比您所做的确实有用且相对容易。

您可以在这里查看:http://www.cimgf.com/2009/09/23/uitableviewcell-dynamic-height/并有充分的解释。享受编程的乐趣。

关于iphone - UIlabel 在滚动 UiTableView 时缩小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12600348/

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