如果在reloadDate后需要立即獲取tableview的cell粪滤、高度,或者需要滾動tableview雀扶,那么杖小,直接在reloadData后執(zhí)行代碼是有可能出問題的。
reloadDate并不會等待tableview更新結(jié)束后才返回愚墓,而是立即返回予权,然后去計算表高度,獲取cell等浪册。
如果表中的數(shù)據(jù)非常大扫腺,在一個run loop周期沒執(zhí)行完,這時村象,需要tableview視圖數(shù)據(jù)的操作就會出問題了笆环。
apple并沒有直接提供reloadData的api,想要程序延遲到reloadData結(jié)束在操作厚者,可以用以下方法
方法1:
layoutIfNeeded會強制重繪并等待完成躁劣。
方法2:
reloadDate會在主隊列執(zhí)行,而dispatch_get_main_queue會等待機會库菲,直到主隊列空閑才執(zhí)行习绢。