美文网首页复制粘贴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