gpt4 book ai didi

iphone - 具有不同单元格的 UITableView "behavior"

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:26:12 25 4
gpt4 key购买 nike

作为大学的一个项目,我正在开发一个位置感知应用程序,要开发的功能之一是显示离用户最近的前五个兴趣点。我正在使用其单元格样式为 UITableViewCellStyleSubtitle 的 TableView 。我遇到了一些问题,因为除了单元格的标题和副标题之外,我还使用图像(箭头)来显示用户到达 POI 应遵循的方向。该图像应在设备的航向/位置发生变化时立即旋转。问题是只有表格 View 的最后一行有效,主要问题是我不知道如何使用五个不同的单元格,因为每个 POI 可以有不同的位置而不是设备的位置,因此每个单元格的图像应该独立旋转。我报告了一张图片,以便更好地了解我的问题。

TableView

下面是我用于表格 View 单元格的代码:

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

static NSString *tableIdentifier = @"tableIdentifier";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:tableIdentifier];

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

cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.textLabel.backgroundColor = [UIColor clearColor];
cell.detailTextLabel.backgroundColor = [UIColor clearColor];

NSUInteger row = [indexPath row];


cell.detailTextLabel.text = [NSString stringWithFormat:@"Distance: %.3f Km",[...];

UIImage *cellImage = [UIImage imageNamed:@"arrow.png"];
cell.imageView.image = cellImage;
self.cellImageView = cell.imageView;

return cell;
}

关于如何使用 5 个不同的单元格来为每个箭头提供直角的任何想法?!

谢谢

最佳答案

通过做:

self.cellImageView = cell.imageView

您只为自己提供了对最后一个单元格的引用。每次配置单元格时,您的 cellImageView 变量都会更新以指向该单元格的 ImageView ,并且您会丢失对前一个单元格 ImageView 的引用。

因此,解决您的问题的一种方法是将细胞 ImageView 累积在一个数组中。只需确保将 ImageView 与适当的位置匹配即可;单元格可以在 tableview 显示时重复使用。但是 tableview 拥有这些单元格,并且可以出于缓存目的随意处理它们(因此是重用标识符)。

更好的方法是与 tableview 合作,让它知道什么时候需要改变。忘掉您的 ivar,只需在单元格配置期间设置正确的标题即可。需要更改单元格的标题?告诉 tableview 重新加载该单元格。需要更改所有单元格的标题?只需调用 [[self tableView] reloadData]

只有当您遇到明显的 UI 速度变慢的问题时,您才应该担心做一些更聪明的事情。

关于iphone - 具有不同单元格的 UITableView "behavior",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6627113/

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