zoukankan      html  css  js  c++  java
  • UIControl 及其子类

    #import "MainViewController.h"


    //1,宏定义

    #define kScreenHeight CGRectGetHeight(self.view.bounds)//屏幕高度宏

    #define kScreenWidth CGRectGetWidth(self.view.bounds)//屏幕宽度宏



    @interface MainViewController ()


    @end


    @implementation MainViewController


    - (void)viewDidLoad {

        [super viewDidLoad];

        // Do any additional setup after loading the view.

        

    //2分段控件

        UISegmentedControl*segmentedControl=[[[UISegmentedControl alloc]initWithItems:@[@"左视图",@"右视图"]]autorelease];

        

        segmentedControl.frame=CGRectMake(20, 50, kScreenWidth-40, 30);

        

        

        segmentedControl.selectedSegmentIndex=0;

        

        

        

        [segmentedControl addTarget:self action:@selector(handleSegmentAction:) forControlEvents:UIControlEventValueChanged];

        segmentedControl.tag=100;

        [self.view addSubview:segmentedControl];

        

    //3,两个视图

        

        //视图的宽度和间距

        CGFloat viewWidth = 120;

        CGFloat viewHeight = 200;

        CGFloat offsetX = (kScreenWidth - viewWidth*2 )/3;

        

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

            UIView *aView=[[[UIView alloc]initWithFrame:CGRectMake(offsetX+(viewWidth+offsetX)*i ,100, viewWidth, viewHeight)]autorelease];

            aView.backgroundColor = i ? [UIColor greenColor]:[UIColor redColor];//三目运算 i==0 ,表示假;i==1,表示 ;

            

            aView.tag = 200 + i;

            

            [self.view addSubview:aView];

            

        }

        

    //4,滑杆

        NSArray *colors=@[[UIColor redColor ],[UIColor greenColor],[UIColor blueColor]];

        CGFloat offsetY= 20;//纵向

        for (int i =0; i<colors.count; i++) {

            UISlider *aSlider=[[[UISlider alloc]initWithFrame:CGRectMake(40, 400+(40+offsetY) * i, kScreenWidth-80, 40)]autorelease];

            //设置最小值,最大值,和当前值

            aSlider.minimumValue=0;

            aSlider.maximumValue=1;

            aSlider.value=0;

            

            aSlider.minimumTrackTintColor=colors[i];

            aSlider.thumbTintColor=colors[i];

            

            aSlider.tag=300+i;

            [aSlider addTarget:self action:@selector(handleSliderAction:) forControlEvents:UIControlEventValueChanged];

            

            [self.view addSubview:aSlider];

            

        }

        

        

    //5开关

        UISwitch *aSwitch=[[[UISwitch alloc]initWithFrame:CGRectMake(30, kScreenHeight-80, 0, 0)]autorelease];

        aSwitch.on=NO;//设置开关当前状态,

        

        [aSwitch addTarget:self action:@selector(handleSwitchAction:) forControlEvents:UIControlEventValueChanged];

         aSwitch.tag=400;

        [self.view addSubview:aSwitch];

        

        //

        UIStepper *aStepper=[[[UIStepper alloc]initWithFrame:CGRectMake(kScreenWidth - 120, kScreenHeight - 80, 0, 0)]autorelease];

        aStepper.minimumValue=200;//计步器的最小值,视图原始高度

        aStepper.maximumValue=280;//计步器的最大高度,视图的最终高度

        aStepper.stepValue=5;//每次增加的值

        aStepper.value=200;//计步器的当前值

        

        [aStepper addTarget:self action:@selector(handleStepperAction:) forControlEvents:UIControlEventValueChanged];

         aStepper.tag=401;

        [self.view addSubview:aStepper];

        

        //调用方法

       [self handleSegmentAction:segmentedControl];

       

        

        

    }


    //分段方法

    - (void)handleSegmentAction:(UISegmentedControl*)sender{

        

        UISlider*redSlider=(UISlider*)[self.view viewWithTag:300];

        UISlider*greenSlider=(UISlider*)[self.view viewWithTag:301];

        UISlider*blueSlider=(UISlider*)[self.view viewWithTag:302];

        

        UISwitch*aSwitch=(UISwitch*)[self.view viewWithTag:400];

        UIStepper*aStepper=(UIStepper*)[self.view viewWithTag:401];

        

        

        

        UIView*currentView=[self.view viewWithTag:200+sender.selectedSegmentIndex];

        [aSwitch setOn:currentView.hidden animated:YES];

    //    aSwitch.on=currentView.hidden;

        aStepper.value=CGRectGetHeight(currentView.frame);

       

        CGFloat red,green,blue;

        

        //获取颜色

        [currentView.backgroundColor getRed:&red green:&green blue:&blue alpha:nil];

        

        redSlider.value=red;

        greenSlider.value=green;

        blueSlider.value=blue;

        

        

        

        

        

    }

    //滑杆方法

    - (void)handleSliderAction:(UISlider*)sender{

        //得到三个滑杆的当前值,作为颜色三原色的色值

        CGFloat red=[(UISlider *)[self.view viewWithTag:300] value];

        CGFloat green=[(UISlider*)[self.view viewWithTag:301] value];

        CGFloat blue=[(UISlider*)[self.view viewWithTag:302] value];

        

        //通过segmentControl 当前选中的下标获取被改变的视图

        UISegmentedControl*segmentControl=(UISegmentedControl*)[self.view viewWithTag:100];

        UIView*currentView=[self.view viewWithTag:200+segmentControl.selectedSegmentIndex];

        

        //设定视图的背景颜色

        currentView.backgroundColor=[UIColor colorWithRed:red green:green blue:blue alpha:1];

        

        

    }

    //开关方法

    - (void)handleSwitchAction:(UISwitch*)sender{

        UISegmentedControl*segmentControl=(UISegmentedControl*)[self.view viewWithTag:100];

        UIView*currentView=[self.view viewWithTag:200+segmentControl.selectedSegmentIndex];

        currentView.hidden=sender.on;

        

        

    }


    //+-方法

    - (void)handleStepperAction:(UIStepper*)sender{

        UISegmentedControl*segmentControl=(UISegmentedControl*)[self.view viewWithTag:100];

        UIView*currentView=[self.view viewWithTag:200+segmentControl.selectedSegmentIndex];

        CGRect frame = currentView.frame;

        frame.size.height=sender.value;

        currentView.frame = frame;

        

        

    }


  • 相关阅读:
    【转载】SAP_ECC6.0_EHP4或SAP_ECC6.0_EHP5_基于Windows_Server_2008R2_和SQL_server_2008下的安装
    使用delphi 开发多层应用(二十四)KbmMW 的消息方式和创建WIB节点
    使用delphi 开发多层应用(二十三)KbmMW 的WIB
    实现KbmMw web server 支持https
    KbmMW 服务器架构简介
    Devexpress VCL Build v2014 vol 14.1.1 beta发布
    使用delphi 开发多层应用(二十二)使用kbmMW 的认证管理器
    KbmMW 4.50.00 测试版发布
    Basic4android v3.80 beta 发布
    KbmMW 认证管理器说明(转载)
  • 原文地址:https://www.cnblogs.com/xinyu-1105/p/4902951.html
Copyright © 2011-2022 走看看