zoukankan      html  css  js  c++  java
  • UI 简单练习(联动实例)

    #import "MainViewController.h"

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

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

    @interfaceMainViewController ()

     

    @end

     

    @implementation MainViewController

     

    - (void)viewDidLoad {

        [superviewDidLoad];

        // Do any additional setup after loading the view.

    // 分段控件

        UISegmentedControl*segementControl=[[UISegmentedControlalloc]initWithItems:@[@"左视图",@"右视图"]];

        segementControl.frame=CGRectMake(20, 50, KScreenWidth-40, 30);

        

    //设置分段默认选中的下标

        segementControl.selectedSegmentIndex=0;

        [segementControl addTarget:selfaction:@selector(handleSegementAction:) forControlEvents:UIControlEventValueChanged];

        [self.view addSubview:segementControl];

        [segementControl release];

        

    //视图的宽度和间距

        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)];

            aView.backgroundColor=i?[UIColorgreenColor]:[UIColorredColor];

    //        tag

            aView.tag=200+i;

            [self.view addSubview:aView];

            [aView release];

        }

            

    //

            NSArray*colors=@[[UIColorredColor],[UIColorgreenColor],[UIColorblueColor]];

            CGFloat offsetY=20;//纵向偏移量

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

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

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

                aSlider.minimumValue=0;

                aSlider.maximumValue=1;

                aSlider.value=0;

                aSlider.minimumTrackTintColor=colors[i];

                aSlider.thumbTintColor=colors[i];

    //              设置 tag

                aSlider.tag=300+i;

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

                

                [self.view addSubview:aSlider];

                [aSlider release];

                

                }

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

            aSwitch.on=NO;//设置当前开关状态,类似于分段中下标000

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

            [self.view addSubview:aSwitch];

            [aSwitch release];

            

            UIStepper*aSteper=[[UIStepperalloc]initWithFrame:CGRectMake(KScreenWidth-120, kScreenHeight-80, 0, 0)];

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

            aSteper.maximumValue=280;//计步器的最大值为视图的最终高度

            aSteper.stepValue=5;//每次增加值

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

            

            [aSteper addTarget:selfaction:@selector(handleSteperAction:) forControlEvents:UIControlEventValueChanged];

            [self.view addSubview:aSteper];

            [aSteper release];

            

    //    设置 tag

        segementControl.tag=100;

        aSwitch.tag=400;

        aSteper.tag=401;

        

        [self handleSegementAction:segementControl];

            

    }

     

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

    //    根据当前值改变控件值.(逆向思维)

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

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

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

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

        UIStepper*aSteper=(UIStepper*)[self.viewviewWithTag:401];

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

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

        aSteper.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.viewviewWithTag:300]value];

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

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

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

        UISegmentedControl*segementControl=(UISegmentedControl*)[self.viewviewWithTag:100];

        UIView*currrentView=[self.view viewWithTag:200+segementControl.selectedSegmentIndex];

    //    设定视图的背景颜色

        currrentView.backgroundColor=[UIColorcolorWithRed:red green:green blue:blue alpha:1];

        

        

        

    }

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

        UISegmentedControl*segementControl=(UISegmentedControl*)[self.viewviewWithTag:100];

        UIView*currentView=[self.viewviewWithTag:200+segementControl.selectedSegmentIndex];

        currentView.hidden=sender.on;

        

        

        

        

        

        

    }

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

        UISegmentedControl*segementControl=(UISegmentedControl*)[self.viewviewWithTag:100];

        UIView*currentView=[self.viewviewWithTag:200+segementControl.selectedSegmentIndex];

        CGRect frame=currentView.frame;

        frame.size.height=sender.value;

        currentView.frame=frame;

        

     

        

    }

    - (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

     

  • 相关阅读:
    web网站开发反面教材
    phpstudy 做的后台长时间运行的脚本,设置了脚本运行时间还是40秒就返回500,用的apache2.4.39
    PHP_EOL
    web文件下载,a标签文件下载,php文件下载
    邮件发送
    网站调用qq第三方登录
    微信Pcweb登录简介
    JqueryOn绑定事件方法介绍
    php+ajax文件上传
    php操作数组函数
  • 原文地址:https://www.cnblogs.com/wjpn/p/4902782.html
Copyright © 2011-2022 走看看