6

Implementuję przewijanie w poziomie w aplikacji za pomocą kontrolera UIPageViewController, który ustawi właściwość navigation na "Horizontal", a Transistion Style na "scroll". Wszystko działa dobrze, mogę dodać niektóre subviews, które są prezentowane prawidłowo. Chcę też skorzystać z wbudowanego w UIPageControl że UIPageViewController ma poprzez wykorzystanie tych dwóch metod:Czy istnieje sposób, w jaki można manipulować nadrzędnego kontrolera widoku, aby subviews były poniżej UIPageControl?

-(NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pageViewController 
-(NSInteger)presentationCountForPageViewController:(UIPageViewController *)pageViewController 

to faktycznie pokazuje co szukam: kropek, która wskazuje, które subview pokazano. Ale, jak widać na obrazku, UIPageControl jest ustawiony na dole nadrzędnego kontrolera view (kontroler UIPageViewController). Możesz sobie wyobrazić, że nie jest to sposób, w jaki miałem na myśli zaprezentowanie mojego UIPageControl. Czy istnieje sposób, w jaki można manipulować nadrzędnego kontrolera widoku, aby subviews były poniżej UIPageControl? Czy jest jakaś inna dobra praktyka, aby to osiągnąć? Wiem, że mogłem zaimplementować przewijanie w poziomie za pomocą scrollView zamiast UIPageViewController, ale wydaje mi się to znacznie bardziej efektywne.

http://i48.tinypic.com/2hd03ev.png

Dla jasności: Szara część jest moja subview i czerwona część jest pod nią UIPageViewController że używam.

Z góry dziękuję za odpowiedź!

Odpowiedz

4

Jednym z rozwiązań byłoby raczej utworzenie i zarządzanie własnym UIPageControl niż używanie wbudowanego.

Jeśli utworzyłeś własny, kilka opcji będzie działało, aby wyświetlić go na wymaganej głębokości, ale polecam utworzenie nakładki widoku na szczycie UIPageViewController i dodanie do tego UIPageControl, aby oba były całkowicie niezależne. Możesz także ustawić kontrolkę strony w dowolnym miejscu.

Aby śledzić zmiany strony, wdrożenie UIPageViewControllerDelegate z UIPageViewController i przekazania zmiany widoku kontrolera do swojej UIPageControl użyciu setCurrentPage i setNumberOfPages.

Powiązane problemy