美文网首页复制粘贴iOS 开发 iOS开发
iOS用延时dispatch_after解决bug示例

iOS用延时dispatch_after解决bug示例

作者: 船长_ | 来源:发表于2016-06-23 18:50 被阅读2679次
demo2.gif
  • 1.tableView 本地筛选,cell刷新时候出现如图的bug,注:cell只有一个时候,才会出现这个bug,如果不用延时,setContentOffset:CGPointZero代码无效
[self.tableView reloadData];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            
     [self.tableView setContentOffset:CGPointZero animated:YES];
});
demo.gif
  • 2.push到一个或者多个VC,返回回到指定首页,如图,注意:不是回到我的界面,而是发现TabBarItem
UITabBarController *vc=self.tabBarController;
[self backAction:^{
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [vc setSelectedIndex:1];
    });
}];
  • 3.延迟加载,保证控件在其他控件的上面
// 延迟加载窗口,保证创建的这个窗口在所有窗口的最上面
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.25 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
      window_ = [[UIWindow alloc] init];
});

相关文章

网友评论

  • 奔跑的鸿:第一个的bug是指cell没有顶着导航栏吗?第二个的bug是说有一瞬间跳到“我的”又跳回“发现”?

本文标题:iOS用延时dispatch_after解决bug示例

本文链接:https://www.haomeiwen.com/subject/xnxodttx.html