当程序进入登陆界面后,
期间调用到异步的http
初始化ViewController内容完毕后,
但是部分内容没有显示:
有时候:稍等一会,就又可以显示了:
有时候,等好半天,都还是不显示
搜:
swift UIImage delay show
swift UIImage in UIView delay show
swift part of uiview show slow
swift part of uiview show latter
然后,当切换了之后,label上面的文字,也是重复的,乱的:
搜:
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,
后续获得到对应的数据之后,再去更新数据
-》此时主界面中数据就可以及时被更新显示了。
转载请注明:在路上 » [已解决]swift中UIView中的UIBarButtonItem的UIImage图片没有完全显示