2014-04-09 19 views
1

我已經出現了某種錯誤(我猜)...在我的viewDidLoad:獲取和做其他事情後,我滾動UITableView到將來最近的日期。我用這個方法,但基本上它調用scrollToRowAtIndexPath:atScrollPosition:animated:。一切工作正常,因爲我從一個按鈕動作或UITableView重新加載後調用此方法,但...UITableView滾動到不同設備上的行

當我在iPhone 4S(真實設備)上運行thsis應用程序它不滾動我在viewDidLoad此行,但列出我這個方法執行正確!更重要的是,當我在模擬器(5或5S)中運行它時,一切都像魅力一樣運作!當我在iPhone 4模擬器中運行這個代碼時,該代碼甚至不起作用...爲什麼?是否有某種類型的chanange需要確定我正在使用的設備的kinde?

回答

1

我建議看看兩個選項:

1)替代viewDidLoad您應該在滾動的邏輯移動到viewDidAppearafter some delay

2)處理此委託,一旦希望的單元格滾動到其位置:

- (void)tableView:(UITableView *)tableView didEndDisplayingCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath*)indexPath NS_AVAILABLE_IOS(6_0) 
{ 
    if(indexPath.row == someFutureDateRowNumber) 
    { 
      // TODO : do scrolling here. 
    } 
} 
0

延遲後嘗試撥打scrollToRowAtIndexPath:atScrollPosition:animated:。您可以使用- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay;