gpt4 book ai didi

iphone - 自定义 UITableViewCell

转载 作者:行者123 更新时间:2023-12-03 19:42:01 27 4
gpt4 key购买 nike

我正在尝试自定义 UITableViewCell 来“美化”应用程序,但我遇到了麻烦。我的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UIImage *rowBackground;
UIImage *selectionBackground;
NSInteger sectionRows = [tableView numberOfRowsInSection:[indexPath section]];
NSInteger row = [indexPath row];

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if ( cell == nil ) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}

if (row == 0 && row == sectionRows - 1) {
rowBackground = [UIImage imageNamed:@"topAndBottomRow.png"];
selectionBackground = [UIImage imageNamed:@"topAndBottomRowSelected.png"];
NSLog(@"topAndBottom");
}
else if ( row == 0 ) {
rowBackground = [UIImage imageNamed:@"topRow.png"];
selectionBackground = [UIImage imageNamed:@"topRowSelected.png"];
NSLog(@"topRow");
}
else if ( row == sectionRows - 1 ) {
rowBackground = [UIImage imageNamed:@"bottomRow.png"];
selectionBackground = [UIImage imageNamed:@"bottomRowSelected.png"];
NSLog(@"bottomRow");
} else {
rowBackground = [UIImage imageNamed:@"middleRow.png"];
selectionBackground = [UIImage imageNamed:@"middleRowSelected.png"];
NSLog(@"middleRow");
}

((UIImageView *)cell.backgroundView).image = rowBackground;
((UIImageView *)cell.selectedBackgroundView).image = selectionBackground;

NSString *cellValue = [[listOfItems objectAtIndex:indexPath.row] description];
cell.textLabel.text = cellValue;

return cell;
}

它选择了适当的图像,如控制台日志中所示,但我有两个问题:1.设置(cell.backgroundView).image没有效果2. 设置 (cell.selectedBackgroundView).image 错误: -[UITableViewCellSelectedBackground setImage:]:无法识别的选择器发送到实例 0x4b90670

我可以在谷歌中找到有关 UIView 问题的提示,但没有找到有关 UITableViewCell 的任何信息。帮忙?

最佳答案

存在一些不兼容性 - 没有可以设置的官方背景图像,IIRC,只有一个背景 UIView。如果你想要 UIImageView 的东西,你必须自己做。

因此,您必须在创建单元格时手动将单元格的背景 View 设置为空白 UIImageView,例如:

cell.backgroundView = [[[UIImageView alloc] init] autorelease];

...然后您可以在其上设置图像。

关于iphone - 自定义 UITableViewCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6365499/

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