1

我想用UIPageControl在不同的視圖控制器之間導航。我有2個視圖控制器,另一個主視圖控制器包含UIPageControl。要導航的2個視圖控制器已作爲子視圖添加到主視圖控制器。當我正在啓動應用程序時,我看到一個空白屏幕。我使用pageControl.currentPage = 0,但我無法理解爲什麼我無法看到意見。iOS - 使用UIPageContol在頁面之間加載和切換

請注意,我不想在我的應用程序中使用UIScrollView

編輯 - 我按照這個教程http://www.wannabegeek.com/?p=168

但它使用滾動視圖。我不想使用滾動視圖,因爲它在UIWebView和我在不同視圖控制器中使用的CorePlot中創建了一些問題。

我在不使用滾動視圖的情況下尋求如何修改本教程的指導。謝謝!

回答

1

將其他視圖控制器添加爲子視圖只關聯視圖控制器 - 它不會添加它們作爲子視圖管理的視圖。因此,當您將它們添加爲子項時,您還應該添加子視圖並設置初始框架。您可能還需要添加滑動手勢來觸發視圖動畫,以便爲視圖的框架設置動畫(儘管還有其他幾個選項,例如使用滾動視圖)。

作爲移動視圖的動畫的一部分,您手動更新頁面控件(不會自動發生)。


loadScrollViewWithPage方法是關鍵。使用參數0然後調用1加載這兩個頁面並將視圖添加爲子視圖。只需將self.scrollView更改爲self.view即可。

我會向頁面控件添加一個(真正的兩個,但首先獲得1個)滑動手勢。然後,當它被滑過時,您可以移動其他視圖。

滑動手勢回調:

- (void)swipeRightToLeftGesture:(UIGestureRecognizer *)gestureRecognizer 
{ 
    [UIView animateWithDuration:1 
        animations:^{ 

        for (UIViewController *vc in self.childViewControllers) { 
         CGRect frame = vc.view.frame; 
         frame.origin.x -= self.view.frame.size.width; 
         vc.view.frame = frame; 
        } 
       }]; 
} 

這在迭代子視圖控制器和動畫的意見的框架將其移動到左側。從左到右的刷卡處理程序將會是相同的,除了它會將寬度移動到右邊+=

[代碼編輯 - 語法]

+0

你可以請建議一些示例代碼如何添加子視圖並設置初始框架? – Dinesh

+1

你可以展示一些你如何創建你所擁有的代碼嗎?顯然,你很難將建議與你所擁有的建議聯繫起來,因此你可以詳細說明你有什麼,我們可以用你理解的名字來工作。這是你的第一個應用程序? – Wain

+0

是的,它是!我將編輯我的帖子。 – Dinesh

0

除了顯示一些點之外,UIPageControl不會做任何事情。如果你想在視圖控制器之間切換的方式,它聽起來像你想要的UIPageViewController,這是一個完全不同的動物。 UIPageViewController的一個很好的功能是它可以顯示一個UIPageControl作爲指示/切換視圖控制器的一種方式,這可能只是你之後的事情。

+0

我的應用程序目前有2次,我想一個頁面指示符被合併到它。其中一個視圖具有UIWebView,另一個具有可放大/縮小的Coreplot。那麼你是否推薦使用UIPageViewController? – Dinesh

+0

@Dinesh是的,Dinesh。 – Pavan

1

UIPageControl不處理您的刷卡或頁面切換。爲了使用它,你需要有一個滾動視圖(或其他類型的控件)來處理滑動和實際的頁面切換,然後實現UIScrollViewDelegate協議(或者你使用的控件所需的任何協議)知道頁面控件何時應該更新其當前頁面位置(當前選定的點)。 UIPageControl本身並沒有真正做到很多。

+0

我嘗試過使用'UIScrollView',但我在其中一個視圖控制器中有一個UIWebView,並且該滾動在UIWebView中不起作用。 – Dinesh

+1

你不需要滾動視圖,'UIView'動畫改變子視圖框將會很好。 – Wain

+0

你能指導我一些教程/代碼嗎? – Dinesh