【发布时间】:2013-12-05 19:28:03
【问题描述】:
我在我的应用程序中使用 ECSlidingViewController。我有一个带有 UITableView 的视图控制器,它使用 UIRefreshControl 来执行一个长任务。当我下拉刷新时,刷新控件开始正常动画,但是当我转到顶部视图控制器(在本例中为我的主菜单)然后返回我的视图控制器时,refreshControl 完全冻结,直到任务完成。
为了更清楚,这些是我遵循的步骤:
- 下拉我的 tableView 以刷新它。
-
一个长任务在后台执行,比如:
- (void)pulledToRefresh:(UIRefreshControl *)refreshControl { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{ long long a = 0; for (long long i = 0; i < 100000000000; i++) { a++; } dispatch_async(dispatch_get_main_queue(), ^{ [refreshControl endRefreshing]; }); }); } 当刷新控件动画时,我滑动(我不调用
resetTopView:animated:方法或其中任何一个,我只是做了一个平移手势)我当前的视图控制器向右显示我的主菜单。发生这种情况时,刷新控件会突然停止动画(冻结)。我回到最初使用的视图控制器,但它仍然冻结。
任务完成,刷新控件自然结束刷新,通过漂亮的动画将其从我的 tableView 中移除。
知道为什么会这样吗?
【问题讨论】:
-
这可能是
ECSlidingViewController中的一个错误。见github.com/ECSlidingViewController/ECSlidingViewController/… -
很高兴知道你们仍在从事此工作并意识到此错误。谢谢!
-
我刚刚对此进行了修复。试试最新的 master 分支,告诉我它是如何为你工作的。
-
完美运行!感谢您的快速回复!
-
对不起迈克尔!我已经给它第二次了,它似乎仍然不起作用=/
标签: ios objective-c ios7 uirefreshcontrol ecslidingviewcontroller