天天看點

UIPageControl的一個Demo

本篇文章隻是記錄了一個自定義UIPageControl 的制作,其實很簡單的   源碼在底部會奉上連結,還望多多交流,多多支援。

首先效果圖如下:

UIPageControl的一個Demo

首先先做一個UISCrollView

// 建議這樣做,可以避免記憶體的洩露

UIScrollView *scrol = [[UIScrollViewalloc]init];

    self.scrol = scrol;

    [scrol release];

    MyPageControl *page = [[MyPageControlalloc]init];

    self.pageControl = page;

    [page release];

   //  設定UIScrollView的一些屬性

    self.scrol.frame =CGRectMake(0,5,320,150);

    self.scrol.contentSize =CGSizeMake(320*3,150);

    self.scrol.showsHorizontalScrollIndicator =NO;

    self.scrol.pagingEnabled =YES;

    self.scrol.bounces =NO;

    self.scrol.delegate =self;

//    這裡添加3張圖檔 做示範用

    for (int i = 0; i<3; i++) {

        UIImageView *imgv = [[UIImageViewalloc]initWithImage:[UIImageimageNamed:@"default_pic.png"]];

        imgv.frame = CGRectMake(i*320,0,320, 150);

        [self.scroladdSubview:imgv];

        [imgv release];

    }

    [self.viewaddSubview:self.scrol];

    //   添加圖檔下方的陰影   

    UIImageView *img_shade = [[UIImageViewalloc]initWithImage:[UIImageimageNamed:@"shade.png"]];

    img_shade.frame = CGRectMake(0,135,320, 20);

    //   下面才是重點   

    CGRect rect =CGRectMake(img_shade.center.x-self.pageControl.frame.size.width/2, img_shade.frame.size.height -20,35,20);

    self.pageControl.frame = rect;  //    設定坐标

    [_pageControl setCurrentPage:0];//    設定目前顯示

    [_pageControl setNumberOfPages:3];//    設定共幾張

    self.pageControl.backgroundColor = [UIColorclearColor];//    設定背景色為無

    [selfsetPageControlPoint];//    這裡寫了一個方法用來設定圖檔的顔色,這樣做是因為在UIScrollView滑動的時候也能改變顔色

    [self.pageControlsetHidesForSinglePage:YES];//    此屬性是說明,當隻有一個圖檔的時候也要顯示一個點,預設為NO,即不顯示一個點

    [img_shade addSubview:self.pageControl];

    [self.view addSubview:img_shade];

    [img_shade release];

源碼位址:http://download.csdn.net/detail/zgcrichard/6224757