Ios 延迟后将显示添加的子视图
我有一个名为loadMainView()的函数,它是从viewDidLoad()调用的,如下所示 正如您所看到的,我在这个函数中所做的只是在“主视图”中添加一个名为“note”的子视图。代码工作正常,但子视图“note”在延迟10或15秒后显示在屏幕上 我试图添加一个print语句print(“subview added”),以查看是否需要一些时间才能到达该语句,但在loadMainView()函数中填充数据源时会调用print语句,并且print语句后添加的subview after print语句会在print语句后10或15秒后显示 我无法理解为什么我在显示子视图时会出现这种延迟Ios 延迟后将显示添加的子视图,ios,iphone,swift,uiview,subview,Ios,Iphone,Swift,Uiview,Subview,我有一个名为loadMainView()的函数,它是从viewDidLoad()调用的,如下所示 正如您所看到的,我在这个函数中所做的只是在“主视图”中添加一个名为“note”的子视图。代码工作正常,但子视图“note”在延迟10或15秒后显示在屏幕上 我试图添加一个print语句print(“subview added”),以查看是否需要一些时间才能到达该语句,但在loadMainView()函数中填充数据源时会调用print语句,并且print语句后添加的subview after prin
谢谢因为它是异步任务,所以它在后台线程中执行,所有ui更新都必须在主线程中进行。因此,您必须在主线程中显式调用ui更新。试试下面的代码
dispatch_async(dispatch_get_main_queue()) {
if (result == true) {
let respData = response.objectForKey("data")
self.notesDataList = respData! as! Array<Dictionary<String, AnyObject>>
self.showExisting()
}
}
dispatch\u async(dispatch\u get\u main\u queue()){
如果(结果==真){
让respData=response.objectForKey(“数据”)
self.notesDataList=respData!as!数组
self.showExisting()
}
}
您的完成处理程序可能在后台线程上被调用。您需要在主线程上进行任何UI更新。
func showExistingNotes() {
let xPoint = 100
var yPoint = 100
let printNote = notesDataList[0]
let noteText = printNote["noteText"] as! String
let noteTextFont = printNote["noteTextFont"] as! String
let noteTextFontSize = printNote["noteTextFontSize"] as! CGFloat
let noteType = printNote["noteType"] as! String
let dim = 40.0
let note = WallNote(frame: CGRectMake(xPoint,yPoint,dim,dim), noteType:noteType, noteText: noteText, noteFont:noteTextFont, noteFontSize:noteTextFontSize, noteFontColor:kDefaultFontColor)
note.wallnoteDelegate = self
//print("subview added")
self.masterView!.addSubview(note)
}
dispatch_async(dispatch_get_main_queue()) {
if (result == true) {
let respData = response.objectForKey("data")
self.notesDataList = respData! as! Array<Dictionary<String, AnyObject>>
self.showExisting()
}
}