我已經實現了具有動態內容的滾動視圖:多個子視圖顯示玩家名下的玩家的照片。流程如下: 1.在主窗口上選擇一名玩家。 2.用戶啓動另一個視圖來添加新玩家。 3.當用戶返回主菜單時,滾動視圖會完全刷新,以便新玩家的照片和名稱也顯示出來。自動滾動到滾動視圖中的子視圖
此時,滾動視圖仍然應該有先前選中的播放器進行對焦,而是從一開始就顯示它。 所以問題是:是否有一種方法可以自動滾動到滾動視圖中的特定位置,因此屏幕仍然讓選定的播放器處於焦點?
我已經實現了具有動態內容的滾動視圖:多個子視圖顯示玩家名下的玩家的照片。流程如下: 1.在主窗口上選擇一名玩家。 2.用戶啓動另一個視圖來添加新玩家。 3.當用戶返回主菜單時,滾動視圖會完全刷新,以便新玩家的照片和名稱也顯示出來。自動滾動到滾動視圖中的子視圖
此時,滾動視圖仍然應該有先前選中的播放器進行對焦,而是從一開始就顯示它。 所以問題是:是否有一種方法可以自動滾動到滾動視圖中的特定位置,因此屏幕仍然讓選定的播放器處於焦點?
很簡單,創建一個CGPoint
和一個BOOL
,您可以在視圖更改後保留並在您最初離開該頁面時設置它們。然後在viewDidAppear
,你可以檢查BOOL
是YES
與用途:
[myScrollView setContentOffset:myCGPoint animated:YES];
或者,如果你想滾動視圖顯示已經滾動到正確的位置,做同樣的事情,除了在viewWillAppear
與動畫標誌設置到NO
。
是的,有兩種:
(1) scrollRectToVisible:animated:
(2) setContentOffset:animated:
你可以閱讀有關在UIScrollView Class Reference這兩種方法。無論哪種方式,您可以使用實例變量在用戶滾動時存儲內容偏移量或可見矩形,然後使用上面列出的方法之一在更新玩家數據時恢復滾動視圖位置。
根據你在做什麼,你可能會發現UITableView更容易實現,因爲它是非常可定製的「開箱即用」,它有很多方法來幫助管理一個列表(包括我上面提到的那些, 和更多)。如果你有興趣,看看UITableView Class Reference。