如何判断[UITableView setEditing:YES animated:YES]何时完成?
我不想给出任何背景信息,因为我想避免让任何人给我解决方案,这对我不感兴趣.
我想要的是调用上面的内容,然后在动画完成时调用一个单独的函数.
我编辑了帖子以提供上下文和一些解决方法.最初我setEditing并立即重新加载表数据.
[tableView setEditing:YES animated:YES];
[tableView reloadData];
Run Code Online (Sandbox Code Playgroud)
问题是表在动画开始之前重新加载,因此从未看到动画.
以下是一些不同的解决方法:
[tableView setEditing:YES animated:YES];
[self performSelector:@selector(ReloadTable) withObject:nil afterDelay:1.0];
Run Code Online (Sandbox Code Playgroud)
这有效,但如果我得到的延迟不正确,那么它看起来会很糟糕.所以我需要知道延迟是什么,我可以弄清楚,但我们并不认为延迟总是一样的.
isEditing = YES;
[tableView reloadData];
[tableView setEditing:YES animated:YES];
Run Code Online (Sandbox Code Playgroud)
这可能有效,但表的行为会有所不同,具体取决于我们是否处于编辑模式.所以我必须使用自己的isEditing变量而不是标准的UITableView.editing.我宁愿不必创建一个新的布尔isEditing变量.
[tableView setEditing:YES animated:YES];
[tableView insertRowsAtIndexPaths:path withRowAnimation:UITableViewRowAnimationTop];
Run Code Online (Sandbox Code Playgroud)
这几乎可以正常工作,但在编辑模式下,第一行应该具有UITableViewCellEditingStyleInsert,而其他行获得UITableViewCellEditingStyleDelete.并且使用上面的代码,在添加行之前设置编辑样式.因此第二行以UITableViewCellEditingStyleInsert结束.
我有一个PHP脚本,截断41字节的字符串.我在字符串上调用strlen来检查它的大小.但是,如果字符串具有"\ r \n"组合,则此组合将被视为一个字节.所以在我的情况下,而不是42字节,PHP认为它是41字节.
substr也将它截断为42而不是41个字节.
if (strlen($value) > 41)
{
$value = substr($value, 0, 41);
Run Code Online (Sandbox Code Playgroud)
另一种奇怪的情况.我有一大堆数据通过这个函数.成千上万的字符串.如果我使用更简单的测试数据集,那么代码可以正常工作,将"\ r \n"视为2个字节.
有任何想法吗?谢谢.