UI控件篇——UIPageControl及其自定義


      UIPageControl類提供一行點來指示當前顯示的是多頁面視圖的哪一頁。當然,由於UIPageControl類可視樣式的點擊不太好操作,所以最好是確保再添加了可選擇的導航選項,以便讓頁面控件看起來更像一個指示器,而不是一個控件。當用戶界面需要按頁面進行顯示時,使用UIPageControl控件將要顯示的用戶界面內容分頁進行顯示會使編程工作變得快捷。

      用戶點擊頁面控件,會觸發UIControlEventValueChanged事件,並啟動設置為控件動作的任何方法。可以通過調用currentPage查詢控件的新值,並通過調整numberOfPages屬性設置可用的頁面數。

// 初始化頁面控件
pageControl.numberOfPages = 9;
pageControl.currentPage = 0;

[pageControl addTarget:self action:@selector(pageTurn) forControlEvents:UIControlEventValueChanged];
- (void)pageTurn:(UIPageControl *)pageControl
{
CATransition *transition;
int secondPage = [pageControl currentPage];
if((secondPage - currentPage)>0)
transition = [self getAnimation:@"fromRight"];
else
transition = [self getAnimation:@"fromLeft"];

UIImageView *newView = (UIImageView *)[[contentView subviews] objectAtIndex:0];
[newView setImage:[UIImage imageNamed:[NSString stringWithFormat:@"ipad_wallpaper%02d.jpg",secondPage+1]]];
[contentView exchangeSubviewAtIndex:0 withSubviewAtIndex:1];
[[contentView layer] addAnimation:transition forKey:@"transitionView Animation"];

currentPage = [pageControl currentPage];
}

結合ScrollView后關於UIPageControl的頁面設置算法:

// 在ScrollView的委托方法中

int index = fabs(scrollView.contentOffset.x) / scrollView.frame.size.width;
pageControl.currentPage = index;

自定義之一:給UIPageControl控件添加背景

View Code
 1 int pagesCount =5;
2 UIPageControl *pageControl = [[UIPageControl alloc] init];
3 pageControl.center = CGPointMake(self.view.frame.size.width/2, self.view.frame.size.height-15); // 設置pageControl的位置
4 pageControl.numberOfPages = pagesCount;
5 pageControl.currentPage = 0;
6
7 [pageControl setBounds:CGRectMake(0,0,16*(pagesCount-1)+16,16)]; //頁面控件上的圓點間距基本在16左右。
8 [pageControl.layer setCornerRadius:8]; // 圓角層
9 [pageControl.setBackgroundColor:[UIColor clorWithWhite:0.0 alpha:0.2]];
10 [self.view addSubview:pageControl];



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM