gpt4 book ai didi

iphone - 维护分组的 UITableViewCell 宽度

转载 作者:行者123 更新时间:2023-12-03 21:16:47 25 4
gpt4 key购买 nike

我有一个分组的 UITableView。当用户选择一行时,我希望该单元格变得更窄。我通过以下方式成功实现了这一目标:

//DidSelectRowAtIndexPath

UITableViewCell *cell = [myTable cellForRowAtIndexPath:indexPath];

If (selected == YES) {
selected = NO;
cell.frame = CGRectMake(cell.frame.origin.x, cell.frame.origin.y, 320, 35);
} else {
selected = YES;
cell.frame = CGRectMake(cell.frame.origin.x, cell.frame.origin.y, 275, 35);
}

//end DidSelectRowAtIndexPath

现在这就像一个梦想,但是当单元格滚动离开屏幕并再次返回时,它处于全宽(320,顺便说一句,我并不是说视觉部分是 320 宽。我说的是实际的单元格框架)所以我在“CellForRowAtIndexPaths 方法”中添加了“cell.frame = blahblahblah”行,这没有什么区别。为什么会这样?

最佳答案

那是因为每次您将单元格滚动出屏幕并再次返回时,它都会重新创建。您需要添加检查,或标记所选单元格(使用实例变量),然后在 tableView:cellForRowAtIndexPath: 中调整单元格的宽度,例如:

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

...

if (selectedCellIndex == indexPath.row)
cell.frame = CGRectMake(cell.frame.origin.x, cell.frame.origin.y, 320, 35);
else
cell.frame = CGRectMake(cell.frame.origin.x, cell.frame.origin.y, 275, 35);

}

希望这有帮助

关于iphone - 维护分组的 UITableViewCell 宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11380433/

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