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

     

  • 相关阅读:
    C# 从服务器下载文件
    不能使用联机NuGet 程序包
    NPOI之Excel——合并单元格、设置样式、输入公式
    jquery hover事件中 fadeIn和fadeOut 效果不能及时停止
    UVA 10519 !! Really Strange !!
    UVA 10359 Tiling
    UVA 10940 Throwing cards away II
    UVA 10079 Pizze Cutting
    UVA 763 Fibinary Numbers
    UVA 10229 Modular Fibonacci
  • 原文地址:https://www.cnblogs.com/wjpn/p/4902782.html
Copyright © 2011-2022 走看看