gpt4 book ai didi

cocoa-touch - 在屏幕上向后滚动时,UITableViewCell 会被重新选择

转载 作者:可可西里 更新时间:2023-11-01 03:07:17 24 4
gpt4 key购买 nike

我在我正在开发的 iOS 应用程序 (iOS SDK 4.2) 中实现 UITableView 时遇到了问题。如果我点击 TableView 中的一个单元格,然后 ScrollView 以使该单元格离开屏幕,当它返回到 View 时,最近选择的单元格已被重新选择。

为了测试这一点,我创建了一个新的基于 View 的应用程序项目,在 Interface Builder 中拖出一个 UITableView,并将 View Controller 设置为 TableView 的数据源和委托(delegate),并将以下代码放入 View Controller :

- (NSInteger)numberOfSectionsInTableView:(UITableView *) tableView {
return 1;
}

- (NSInteger)tableView:(UITableView *) tableView numberOfRowsInSection:(NSInteger) section {
return 12;
}

- (UITableViewCell *)tableView:(UITableView *) tableView cellForRowAtIndexPath:(NSIndexPath *) indexPath {
static NSString *cellID = @"aCellID";

UITableViewCell *aCell = [tableView dequeueReusableCellWithIdentifier:cellID];

if (!aCell) {
aCell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID] autorelease];
}

aCell.textLabel.text = [NSString stringWithFormat:@"Cell %d", indexPath.row +1];

return aCell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *aCell = [tableView cellForRowAtIndexPath:indexPath];
[aCell setSelected:NO animated:YES];
}

运行此程序时(在模拟器或设备上)如果我点击任何单元格(例如单元格 12),它将被选中和取消选中。在此之后,如果当前没有选择表格中的单元格,如果我 ScrollView 以使最近选择的单元格(在本例中为 12 个)离开屏幕,它将在重新出现时再次被选中。

这是 UITableView 的预期默认行为吗?或者我的实现可能有错误?在这种情况下取​​消选择此单元格的最佳方法是什么?

最佳答案

我自己提出了这个问题:

我的问题是使用 UITableViewCell 方法 setSelected: 而不是使用 UITableView 方法 deselectRowAtIndexPath:

关于cocoa-touch - 在屏幕上向后滚动时,UITableViewCell 会被重新选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4826844/

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