2012-06-09 43 views
1

我正在開發一個Iphone應用程序,它包含一個帶有8個單元格的UITableview。我實現了一個NSMutableArray,用於在單元格創建時存儲每個單元格,但tableview加載時間僅提供顯示的單元格存儲到數組中。爲了避免這個問題,我使用以下代碼自動滾動表格視圖並獲取存儲到數組的總單元格;在UITableview中自動向下滾動並向上

-(void)viewDidAppear:(BOOL)animated{ 

    [tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:[musicGenre count]-1 inSection:0] atScrollPosition:UITableViewScrollPositionBottom animated:YES]; 

    } 

這是完美的工作。但現在我想在同一時間(加載時間)從下往上滾動這個。如何實現這個? 在此先感謝。

+0

你爲什麼要考慮的問題?爲什麼你要從開始就加載所有的單元格? – Apurv

+0

感謝您的重播。自從開始以來,我想將所有tabelview單元格添加到NSMutable數組中。 – John

+0

@John什麼是musicGenre?當我使用我使用musicGenre作爲NSMutableArray的用戶代碼時,它顯示我訪問不良。 – Muju

回答

8

由於UITableViewUIScrollView繼承你可以使用這樣的事情:

- (void)viewDidAppear:(BOOL)animated{ 

    [table setContentOffset:CGPointMake(0.0, table.contentSize.height - table.bounds.size.height) 
       animated:NO]; 

  [tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:[musicGenre count]-1 inSection:0]             
        atScrollPosition:UITableViewScrollPositionBottom 
          animated:YES]; 
} 

編輯:

如果你想從頂部初始移動到bottm也只是動畫使用:

- (void)viewDidAppear:(BOOL)animated{ 

    [table setContentOffset:CGPointMake(0.0, table.contentSize.height - table.bounds.size.height) 
       animated:YES]; 

    [tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:[musicGenre count]-1 inSection:0]             
        atScrollPosition:UITableViewScrollPositionBottom 
          animated:YES]; 
} 

但請考慮用戶體驗 - 是否需要動畫量?因爲用戶(特別是如果他們經常使用你的應用程序)不喜歡放鬆時間。動畫在增強用戶體驗並且不會延遲工作流程時非常出色。

EDIT2:滾動到頂部(從當前位置),你可以使用:

[table setContentOffset:CGPointZero 
       animated:YES]; 
+0

謝謝你的回覆。我已經實現了這個代碼,但是這並沒有給出確切的答案。實際上,我的需要是,首先滾動從上到下,然後從下到上滾動。這是ViewDidApper中的可能嗎?這意味着類似如下。 - (void)viewDidAppear:(BOOL)animated { [tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:[musicGenre count] -1 inSection:0] atScrollPosition:UITableViewScrollPositionBottom animated:YES]; [tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:YES]; } – John

+0

我編輯了我的答案,但不知道我是否正確理解你。 –

+0

謝謝你。這段代碼只適用於從上到下的滾動。我想都是,意味着從上到下,從下到上。這是爲了保持初始位置(從上到下的格式)。我已經在同一個事件(viewDidApper)中實現了UITableViewScrollPositionBottom 和UITableViewScrollPositionTop,但UITableViewScrollPositionBottom工作正常,UITableViewScrollPositionTop沒有工作。這有什麼用?請重玩我? – John