事件处理, UIControl的子类

//
//  RootViewController.m
//  Lesson05UIControl
//
//  Created by lanouhn on 16/1/6.
//  Copyright (c) 2016年 lanouhn. All rights reserved.
//

#import "RootViewController.h"

@interface RootViewController () {
    UITextField *textField;
    UIImageView *imageView;
    UILabel *label;
    NSInteger index;
}

@end

@implementation RootViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.view.backgroundColor = [UIColor yellowColor];

    /*
    //UIControl, 继承于UIView(UIButton, UITextFeild), 内部封装了target-action的设计模式,只要是继承于UIControl的类, 都可以关联方法
    UIControl *control = [[UIControl alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
    control.backgroundColor = [UIColor cyanColor];
    control.center = self.view.center;
    [self.view addSubview:control];
    [control addTarget:self action:@selector(tap:) forControlEvents:UIControlEventTouchUpInside];
    [control release];
    */

    //一个视图处理触摸事件
    //1.继承于UIView创建子类, 重写touch相关的4个方法
    //2.手势
    //3.UIControl

    //UIControl的子类
    //UIButton
    //UITextField
    //UISlider
    //UISegementedControl
    //UISwitch
    //UIPageControl
    //UIStepper

   // UISwitch, 开关控件类, 开关的宽和高是固定的, 51*31
    /*
    UISwitch *switch1 = [[UISwitch alloc] initWithFrame:CGRectMake(50, 40, 0, 0)]; //51*31
    //设置初始状态(默认为关)
//    switch1.on = YES;
    //状态为开的时候渲染色
    switch1.onTintColor = [UIColor blueColor];
    //状态为关的时候渲染色
    switch1.tintColor = [UIColor redColor];
    //球的(手指)颜色
    switch1.thumbTintColor= [UIColor greenColor];
    [switch1 addTarget:self action:@selector(open:) forControlEvents:UIControlEventValueChanged ]; //值发生改变
//    switch1.backgroundColor = [UIColor cyanColor];
    [self.view addSubview:switch1];
    [switch1 release];

    textField = [[UITextField alloc] initWithFrame:CGRectMake(150, 40, 150, 31)];
    textField.borderStyle = UITextBorderStyleRoundedRect;
    [self.view addSubview:textField];
    [textField release];


    //UISlider, 滑块控件(区间值, 区间模糊值, 模糊的修改)

    imageView = [[UIImageView alloc] initWithFrame:CGRectMake(40, 200, 300, 300)];
    imageView.image = [UIImage imageNamed:@"1111.jpg"];
    [self.view addSubview:imageView];
    [imageView release];
    UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(50, 100, 275, 40)];

    //最大值
    slider.maximumValue = 2;

    //设置最小值
    slider.minimumValue = 0.5;

    //设置初始值
    slider.value = 1;

    //未划过的颜色
    slider.maximumTrackTintColor = [UIColor whiteColor];
    //划过的颜色
    slider.minimumTrackTintColor = [UIColor blackColor];
    slider.thumbTintColor = [UIColor greenColor];

    //滑块的图片
    [slider setThumbImage:[UIImage imageNamed:@"QQ"] forState:UIControlStateNormal];
    [slider setThumbImage:[UIImage imageNamed:@"QQ"] forState:UIControlStateHighlighted];
    //设置左右图片
    slider.minimumValueImage = [UIImage imageNamed:@"min"];
    slider.maximumValueImage = [UIImage imageNamed:@"max"];

    //旋转
    //以锚点旋转(默认为中心)
//    slider.transform = CGAffineTransformMakeRotation(- M_PI_2);
    [slider addTarget:self action:@selector(slider:) forControlEvents:UIControlEventValueChanged];
    [self.view addSubview:slider];
    [slider release];


   // UISegmentedControl, 分段控制器, 有多个选项, 并且只能选其中一个
    NSArray *items = @[@"辉哥真帅", @"辉哥超帅", @"辉哥真的帅"];//语法糖
    UISegmentedControl *segementControl = [[UISegmentedControl alloc] initWithItems:items];
    segementControl.frame = CGRectMake(20, 100, 335, 40);
    //选中第几个, 下标从0开始
    segementControl.selectedSegmentIndex = 0;
    [segementControl addTarget:self action:@selector(select:) forControlEvents:UIControlEventValueChanged];
    [self.view addSubview:segementControl];
    [segementControl release];

    label = [[UILabel alloc] initWithFrame:CGRectMake(20, 40, 375, 40)];
    label.backgroundColor = [UIColor whiteColor];
    label.text = items[0];
    [self.view addSubview:label];
    [label release];


   // UIPageControl, 页码控制器, 一般用于3-4个页面
    UIPageControl *pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(50, 100, 275, 40)];
    //页数
    pageControl.tag = 101;
    pageControl.numberOfPages = 6;
    //未选中点的颜色
    pageControl.pageIndicatorTintColor = [UIColor greenColor];
    //选中点的颜色
    pageControl.currentPageIndicatorTintColor = [UIColor redColor];
    pageControl.backgroundColor = [UIColor blackColor];
    //初始选中的页数(当前页数)
    pageControl.currentPage = 3;
    index = 3;
    [pageControl addTarget:self action:@selector(change:) forControlEvents:UIControlEventValueChanged];
    [self.view addSubview:pageControl];
    [pageControl release];
    //计时器
    [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(run) userInfo:nil repeats:YES];
     */

    //UIStepper, 计步器, 区间值, 精确修改
    UIStepper *stepper = [[UIStepper alloc] initWithFrame:CGRectMake(100, 100, 175, 40)];
    [stepper addTarget:self action:@selector(step:) forControlEvents:UIControlEventValueChanged];
    //最小值
    stepper.minimumValue = 10;
    //最大值
    stepper.maximumValue = 66;
    //当前值
    stepper.value = 30;
    [self.view addSubview:stepper];
    [stepper release];

}

- (void)step:(UIStepper *)stepper {
    NSLog(@"%.2lf", stepper.value);
}

- (void)run {
    UIPageControl *pageControl = (UIPageControl *)[self.view viewWithTag:101];
    index++;
    if (index == pageControl.numberOfPages) {
        index = 0;
    }
    pageControl.currentPage = index;
}


- (void)change:(UIPageControl *)pageControl {
    NSLog(@"%ld", pageControl.currentPage);
}

- (void)select:(UISegmentedControl *)segment {
    NSLog(@"%ld", segment.selectedSegmentIndex);
    label.text = [segment titleForSegmentAtIndex:segment.selectedSegmentIndex];
}


//滑块
- (void)slider:(UISlider *)aSlider {
    NSLog(@"%.2f", aSlider.value); //范围(0-1)
    imageView.transform = CGAffineTransformMakeScale(aSlider.value, aSlider.value);
    /* 区别:
     //在变形参数t的基础上, 做修改
    CGAffineTransformScale(<#CGAffineTransform t#>, <#CGFloat sx#>, <#CGFloat sy#>)
     //在最开始的基础上, 做修改
    CGAffineTransformMakeScale(<#CGFloat sx#>, <#CGFloat sy#>)

    */
}


//开关
- (void)open:(UISwitch *)swith {
    //方法名, 该行在哪一行
    NSLog(@"%s %d", __FUNCTION__,__LINE__);
    NSLog(@"%d", swith.on);
    textField.userInteractionEnabled = swith.on;

}

- (void)tap:(UIControl *)control {
    NSLog(@"哈哈");
    //获取到一个视图的方式
    //1.扩大作用域(实例变量, 属性)
    //2.tag(父视图通过tag找到子视图)
    //3.关联方法,传递过来(前提是: UIControl或其子类)
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值