gpt4 book ai didi

ios - 尝试为单元格创建两个动画

转载 作者:行者123 更新时间:2023-11-28 19:46:52 24 4
gpt4 key购买 nike

我想通过展开和折叠来创建单元格。为此,我通过重新加载为单元格设置动画。当我展开时它工作正常。但是当我崩溃时它崩溃了,原因是尝试为单元格创建两个动画。我知道我给了相同的数组路径,它不会同时重新加载两个单元格。有没有办法解决这个问题。

我是编码新手,所以我很乐意得到一个简单的解决方案。

代码:

我使用 lastSelIPath 的原因是当第一个单元格展开并触摸第二个单元格时,第一个单元格会折叠而第二个单元格会展开。

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

NSIndexPath* lastSelIPath = [ NSIndexPath indexPathForRow:selectedIndex_ inSection:0 ];

[ tableView deselectRowAtIndexPath:indexPath animated:YES ];

if (selectedIndex_ == indexPath.row)
{
selectedIndex_ = -1;
}
else
{
selectedIndex_ = indexPath.row;
}

NSIndexPath* ipath = [ NSIndexPath indexPathForRow:indexPath.row inSection:0 ];

NSArray* indexPathArr = [ NSArray arrayWithObjects:lastSelIPath, ipath, nil ];


[ tableView beginUpdates ];

[ tableView reloadRowsAtIndexPaths:indexPathArr withRowAnimation:UITableViewRowAnimationAutomatic ];

[ tableView endUpdates ];
}

所以我现在所做的是设置条件并重新加载我想要的条件。这是正确的方法吗,请帮助。

修改后的代码:

if ( lastSelIPath.row == ipath.row )
{
[tableView reloadRowsAtIndexPaths:@[ipath] withRowAnimation:UITableViewRowAnimationAutomatic];
}
else
{
[tableView reloadRowsAtIndexPaths:@[lastSelIPath] withRowAnimation:UITableViewRowAnimationAutomatic];

[tableView reloadRowsAtIndexPaths:@[ipath] withRowAnimation:UITableViewRowAnimationAutomatic];
}

最佳答案

Crash 是对的,您正在尝试尝试两个动画。您的 indexPathArr 包含两个对象。不要创建这个数组并试试这个:

 [tableView reloadRowsAtIndexPaths:@[lastSelIPath] withRowAnimation:UITableViewRowAnimationAutomatic];
[tableView reloadRowsAtIndexPaths:@[ipath] withRowAnimation:UITableViewRowAnimationAutomatic];

如果有帮助,请告诉我

关于ios - 尝试为单元格创建两个动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31645543/

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