2016-08-30 59 views
2

我期望完成的主要功能是用戶向左/右滑動,下一頁從側面滑入,兩個屏幕都呈半顯示狀態,直到完成下一頁的滑動。我已經在頁面視圖控制器中看到了這個功能,但我不確定這是否是一個方向。用服務器中的數據填充UIPageViewController?

我還沒有找到很多關於從Firebase的服務器數據動態創建視圖控制器,我幾乎沒有任何使用頁面視圖控制器的經驗,但如果我只是尋找一個左/右滾動是這樣去?

如果我有300頁,我將不得不有可能有一個用戶刷卡通過,用戶不得不首先下載300張圖片是不是很糟糕?

或多或少只是在嘗試嘗試之前尋找指導,因爲我仍然不確定自己清楚從哪裏開始。

+0

如果你有這個工作,你能分享一個例子嗎?我也試圖讓這個與UIPageViewController一起工作,我沒有得到我期望的結果。謝謝! :) –

回答

1

使用PageViewController可以實現。按照這樣的:通過draggging UIPageViewController

  • 設置其委託

    1. 設計的屏幕(廈門國際銀行,或使用故事板)和執行委託方法
    2. 重要的一步是配置你的過渡期間,要多少頁
    3. viewControllerAfterViewController和viewControllerBeforeViewController這兩個方法需要配置,因爲它加載上一個下一個屏幕。

    現在無論你只需要子類:這個viewcontroller並相應地加載這個xib。

    下面是一些代碼示例:

    func pageViewController(pageViewController: UIPageViewController, 
        viewControllerAfterViewController ProView: UIViewController) -> UIViewController? { 
    
         let itemController = ProView as PageItemController 
    
         if itemController.itemIndex+1 < characterImages.count { 
          return getItemController(itemController.itemIndex+1) 
         } 
    
         return nil 
    } 
    
    func pageViewController(pageViewController: UIPageViewController, 
        viewControllerBeforeViewController ProView: UIViewController) -> UIViewController? { 
    
        let itemController = ProView as PageItemController 
    
         if itemController.itemIndex > 0 { 
          return getItemController(itemController.itemIndex-1) 
         } 
    
         return nil 
    } 
    
    private func getItemController(itemIndex: Int) -> PageItemController? { 
    
        if itemIndex < characterImages.count { 
         let pageItemController = self.storyboard!.instantiateViewControllerWithIdentifier("ItemController") as PageItemController 
         pageItemController.itemIndex = itemIndex 
         pageItemController.imageName = characterImages[itemIndex] 
         return pageItemController 
    } 
    

    希望它能幫助。

  • +0

    感謝您的幫助。我認爲頁面視圖絕對是我想要使用的,你是對的。 對於從firebase下載圖像,儘管...在tableview中,如果我有一個300項長的列表,它會下載它們與可重用的單元格,並不會一次下載它們。有了這個方法,我不必下載每個圖片來存儲在我的characterImages數組中使用的數組?我可以使用緩存,我認爲300將是一種罕見的情況,但是這不會是數據/應用程序剛剛發生超負荷時的一個大問題嗎? –

    +0

    而不是有數據數組我猜我可以在getItemController中執行下載與索引那裏是嗎?我可能會有一個「Person」對象,我只需要下載personArray [itemIndex] .imageURL的圖像? –

    +0

    當用戶滾動時可以更好地下載圖像,從而改善用戶交互 –

    相關問題