gpt4 book ai didi

iphone - UITableViewCell 与 UITableViewCellStyleValue1,在底部单元格的detailTextLabel中添加新行

转载 作者:行者123 更新时间:2023-12-03 19:05:09 28 4
gpt4 key购买 nike

在我的表格 View 上,我有最后一个单元格,如第一张图片所示,最初不可见,当我向上滚动列表时,您可以在第二张图片中看到价格或我的详细文本标签放在新行上,而不是维持正确的理由。
image 1 http://img706.imageshack.us/img706/4496/iphoneerror1.jpg

image 2 http://img706.imageshack.us/img706/6007/iphoneerror2edited.jpg


这是代码,我不明白为什么要这样做,任何方向或帮助将不胜感激

- (UITableViewCell *)tableView:(UITableView *)ltableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [ltableView dequeueReusableCellWithIdentifier:CellIdentifier];
// Configure the cell.
NSUInteger indexRow = [indexPath row];
switch (indexRow) {
case 0:{
NSCharacterSet *set = [NSCharacterSet whitespaceCharacterSet];
NSString *description = [[currentData objectForKey:@"Description"] stringByTrimmingCharactersInSet:set];

if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.accessoryType = UITableViewCellAccessoryNone;
cellShift = 1;


if (![description isEqualToString:@""]) {
cell.textLabel.text = @"";
cell.detailTextLabel.text = description;
cell.detailTextLabel.numberOfLines = 2;
}
else {
cell.textLabel.text = @"";
cell.detailTextLabel.text = @"";
cell.detailTextLabel.numberOfLines = 0;


}
break;
}
default:{
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier] autorelease];
}
NSDictionary *item = [tableData objectAtIndex:(indexRow-cellShift)];
NSString *name = [item objectForKey:@"Name"];
if ([name length] > MaxVendorsLength ) {
name = [NSString stringWithFormat:@"%@ ...",[name substringToIndex:MaxVendorsLength]];
}
cell.textLabel.text = name;
cell.textLabel.minimumFontSize = 12;

NSString *priceString;
float price = [[item objectForKey:@"Price"] floatValue];
//NSLog(@"| %@ | : | %@ |",[item objectForKey:@"Name"], [item objectForKey:@"Price"]);
if (price != 0) {
priceString = [[NSString alloc] initWithFormat:@"$%.2f",price];
}
else {
priceString = [[NSString alloc] initWithString:@"--"];
}

cell.detailTextLabel.text = priceString;

cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
[priceString release];
break;
}
}
cell.textLabel.font = [UIFont boldSystemFontOfSize:15];
cell.textLabel.minimumFontSize = 14;
cell.detailTextLabel.font = [UIFont boldSystemFontOfSize:15];
cell.detailTextLabel.minimumFontSize = 14;
return cell;
}

如果我需要发布其他内容来获取帮助,请告诉我???

最佳答案

这是因为当您向上滚动时,顶部单元格会被重复使用,因为所有单元格都具有相同的单元格标识符(第一行)。您需要声明两个单元格标识符,并根据您要获取的行使用适当的标识符。

static NSString *FirstRowCellIdentifier = @"A";
static NSString *OtherRowCellIdentifier = @"B";

NSString *cellIdentifier = nil;
if ([indexPath row] == 0)
cellIdentifier = FirstRowCellIdentifier;
else
cellIdentifer = OtherRowCellIdentifier;

UITableViewCell *cell = [ltableView dequeueReusableCellWithIdentifier:cellIdentifier];
// .....

然后您可以按原样使用其余代码。这只是确保重新使用的单元格的类型正确。

关于iphone - UITableViewCell 与 UITableViewCellStyleValue1,在底部单元格的detailTextLabel中添加新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2933111/

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