天天看點

iOS個人整理12-UIControl與子類:UIPageControl、UIStepper

一、UIPageControl

UIPageControl就是下面的三個小白點,與UIScrollView配合可以切換視圖

iOS個人整理12-UIControl與子類:UIPageControl、UIStepper

常用屬性不多,主要是回調方法要配合UIScrollView的contentOffset屬性進行頁面切換

//建立UIPageControl
    UIPageControl *pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(100, 200, 150, 60)];
    //設定頁數
    pageControl.numberOfPages = 3;
    //設定預設顯示頁
    pageControl.currentPage = 0;
    //設定背景色
    pageControl.backgroundColor = [UIColor colorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0 blue:arc4random()%256/255.0 alpha:1];
    
    //目前小點的顔色
    pageControl.pageControlCurrentPageIndicatorTintColor = [UIColor redColor];

    //非目前的小點顔色
    pageControl.pageIndicatorTintColor = [UIColor whiteColor];


    //添加方法
    [pageControl addTarget:self action:@selector(changeViewPage:) forControlEvents:UIControlEventValueChanged];
    
    //添加到父視圖
    [self.view addSubview:pageControl];           

具體說一下通過pageControl切換ScrollVIew

- (void)viewDidLoad {
    [super viewDidLoad];
    //建立scrollView
    UIScrollView *myScrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, WIDTH, HEIGHT)];
    //設定滾動區域
    myScrollView.contentSize = CGSizeMake(WIDTH*3,HEIGHT);
    //設定tag
    myScrollView.tag = 1000;
    
    //給myScrollView添加三頁内容
    for (int i = 0; i<3; i++) {
        UILabel *myLabel = [[UILabel alloc]initWithFrame:CGRectMake(WIDTH*i, 0, WIDTH, HEIGHT)];
        myLabel.text = [NSString stringWithFormat:@"第%d頁",i];
        myLabel.font = [UIFont systemFontOfSize:100];
        myLabel.textAlignment = NSTextAlignmentCenter;
        myLabel.backgroundColor = [UIColor colorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0 blue:arc4random()%256/255.0 alpha:1];
        [myScrollView addSubview:myLabel];
    }
    
    //建立UIpageController
    UIPageControl *myPageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(0, 630, WIDTH, 40)];
    
    //設定頁數
    myPageControl.numberOfPages = 3;
    
    //設定背景色
    myPageControl.backgroundColor = [UIColor colorWithRed:109/255.0 green:211/255.0 blue:206/255.0 alpha:1];
    
    //給pageControl添加方法
    [myPageControl addTarget:self action:@selector(changePage:) forControlEvents:UIControlEventValueChanged];
    
    //添加到父視圖
    [self.view addSubview:myScrollView];
    [self.view addSubview:myPageControl];
    
}

//實作pageControl方法
-(void)changePage:(UIPageControl*)sender
{
    //根據tag得到scrollView
    UIScrollView *myScrollView = (UIScrollView*)[self.view viewWithTag:1000];
    //根據page的頁數變換scrollView的偏移量
    myScrollView.contentOffset = CGPointMake(WIDTH*sender.currentPage,0);
    
}           

實作效果如下

iOS個人整理12-UIControl與子類:UIPageControl、UIStepper
iOS個人整理12-UIControl與子類:UIPageControl、UIStepper

二、UIStepper

一個加号一個減号的控件,可以當做音量加減按鈕

//uiSteppear + -
    //初始化
    UIStepper *stepper = [[UIStepper alloc]initWithFrame:CGRectMake(10, 20, 100, 100)];
    
    //設定數值範圍
    stepper.maximumValue = 100;
    stepper.minimumValue = 0;
    
    //設定每點一次的增減量
    stepper.stepValue = 20;
    
    //設定是否可以循環
    stepper.wraps = YES;
    
    //設定一直按住是否連續增加
    stepper.autorepeat = YES;
    
    //設定預設值
    stepper.value = 0;
    
    //添加方法
    [stepper addTarget:self action:@selector(stepperAction:) forControlEvents:UIControlEventValueChanged];
    
    //添加到父視圖
    [self.view addSubview:stepper];