[已解决]swift中UIView中的UIBarButtonItem的UIImage图片没有完全显示

当程序进入登陆界面后,
期间调用到异步的http
初始化ViewController内容完毕后,
但是部分内容没有显示:
tab bar image still not show
有时候:稍等一会,就又可以显示了:
 after a while tab image show ios
有时候,等好半天,都还是不显示
搜:
swift UIImage delay show
swift UIImage in UIView delay show
swift part of uiview show slow
swift part of uiview show latter
然后,当切换了之后,label上面的文字,也是重复的,乱的:
navi bar label messy
搜:
swift label text overlay
swift label text missed
参考:
后来解决了:
是之前在异步的http请求的handler中,调用更新UI方面的内容
-》由于是异步的更新UI内容
-》只能等系统循环处理,直到调用更新UI部分
-》而同样的去改为:
    func updateTeamName(){
        dispatch_async(dispatch_get_main_queue(), { () -> Void in
            print("self.currentTeamLabel.text=\(self.currentTeamLabel.text)")
            self.currentTeamLabel.text = gTeamTableViewData.getCurTeamItem()!.nameStr
            print("self.currentTeamLabel.text=\(self.currentTeamLabel.text)")
        })
    }

    func updateTeamList(){
        dispatch_async(dispatch_get_main_queue(), { () -> Void in
            self.switchTeamTableView.switchTeamTableView.reloadData()
        })
    }

//别处调用:
    func switchTeam(newTeamItemIdx:Int){
        setCurTeamIdx(newTeamItemIdx)

        gMainViewController?.updateTeamName()
        gContactTableViewData.resetContactItemList()
        gContactTableViewData.refreshContactData(getCurTeamItem())
    }
然后即可,在刷新内容的时候,UI及时更新
-》此外,由于之前是先去获取很多数据,但是却还没有画主界面UI
-》导致拿到数据后,想要去更新主界面UI,却没有没有生成gMainViewController而无法更新
-》把之前的获取数据的代码,放在主界面之后:
                self.showMainView()

                doAfterLogin()
即可解决此问题:
先去画主界面UI,
后续获得到对应的数据之后,再去更新数据
-》此时主界面中数据就可以及时被更新显示了。


发表评论

电子邮件地址不会被公开。 必填项已用*标注

无觅相关文章插件,快速提升流量