我有一個UIView,我滑動使用UIScrollView。代碼如下所示:加載新子視圖之前調用UIScrollView的setContentOffset
[view setObject:object]; // updates a bunch of labels, images, etc
[scrollView addSubview:view];
[scrollView setContentOffset:CGPointMake(320,0) animated:YES];
問題是,滾動視圖似乎並不等待以動畫的contentOffset之前完全加載,所以動畫是有點生澀(第一幾乎不存在滑入和舊設備上)。奇怪的是,切換到第三行修復它:
[UIView animateWithDuration:0.3 animations:^{
[scrollView setContentOffset:CGPointMake(320,0) animated:NO];
}];
沒有任何滯後,完全平滑的滑入。但是,這不會觸發任何的UIScrollViewDelegate調用,我也依賴這些調用(但不負責延遲)。
任何想法,我怎麼可以告訴UIScrollView等待視圖完全加載之前動畫其contentOffset?或者也許還有別的東西,我錯過了?
編輯:比別人先表明它:是的,我也嘗試:
[self performSelector:@selector(slideIn) withObject:nil afterDelay:1];
只是爲了看它是否會解決它。是的,它確實解決了滯後問題,但這不是一個真正的解決方案。 performSelector:afterDelay:
永遠不是一個解決方案,它只是一個膚淺的修復。另外,您每次都要讓用戶等待額外的時間(因爲根據設備型號,實際延遲可能會比1秒短得多)。
很高興知道,謝謝! – samvermette