• 常见控件的总结


    一、计步器和计数器

    - (void)creatStepper{

        //步进器 、计数器

        //事件驱动型

        UIStepper *stepper  = [[UIStepper alloc] initWithFrame:CGRectMake(100, 100, 100, 50)];

        

        //设置默认色调

        //stepper.tintColor = [UIColor redColor];

        

        //设置最小值 默认是0

        stepper.minimumValue = 0;

        //设置最大值 默认是100

        stepper.maximumValue = 1000;

        //设置步长 默认是1

        stepper.stepValue = 10;

        

        //设置长按 之后是否可以连续触发 函数

        /*

         YES:长按的时候 连续 触发调用stepperClick:

         NO:长按的时候 的时候 stepperClick:最后松手调用一次

         */

        stepper.continuous  = YES;

        

        //长按的时候是否可以  反复修改stepper的值

        /*

         YES:可以连续的修改 值

         NO: 不去连续改值  长按的时候只改一次

         */

        stepper.autorepeat = YES;

        

        

        //增加事件

        [stepper addTarget:self action:@selector(stepperClick:) forControlEvents:UIControlEventValueChanged];

        

        [self.view addSubview:stepper];

        [stepper release];

      

    }

    - (void)stepperClick:(UIStepper *)stepper {

        NSLog(@"value:%f",stepper.value);//打印当前的值

    }

    二、操作表单

                            需要遵守协议

    @interface ViewController7 ()  <UIActionSheetDelegate>

    @end

    - (void)creatButton{

        UIButton *button = [MyControl creatButtonWithFrame:CGRectMake(110, 100, 100, 50) target:self sel:@selector(btnClick:) tag:101 image:nil title:@"分享"];

        [self.view addSubview:button];

        

    }

    - (void)btnClick:(UIButton *)button {

        //操作表单

        /*

         destructiveButtonTitle: 把一些危险的操作 按钮 写在这里 会显示红色

         */

        UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:@"分享" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:@"危险操作按钮" otherButtonTitles:@"短信分享",@"朋友圈分享",@"QQ分享" ,nil];

        

        //从self.view上弹出

        [sheet showInView:self.view];

        [sheet release];

    }

    #pragma mark   -  UIActionSheetDelegate

    //当点击actionSheet的按钮的时候 通知代理调用处理

    - (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {

        //索引值 从上至下 从0开始

        NSLog(@"index:%ld",buttonIndex);

    }

    三、分段控制器和时间驱动器

    - (void)creatSegmentedControl{

        //分段控制器

        //事件驱动型

        NSArray *titles = @[@"小红",@"小黄",@"屎壳郎"];

        UISegmentedControl *seg = [[UISegmentedControl alloc] initWithItems:titles];

        seg.frame = CGRectMake(10, 100, 300, 30);

        //设置属性

        //设置默认选中的分段

        seg.selectedSegmentIndex = 0;

        

        /*

         //增加标题分段

         - (void)insertSegmentWithTitle:(NSString *)title atIndex:(NSUInteger)segment animated:(BOOL)animated;

         //增加图片分段

         - (void)insertSegmentWithImage:(UIImage *)image  atIndex:(NSUInteger)segment animated:(BOOL)animated;

         //删除指定

         - (void)removeSegmentAtIndex:(NSUInteger)segment animated:(BOOL)animated;

         //删除所有

         - (void)removeAllSegments;

         */

        //增加图片分段 显示原始图片

        [seg insertSegmentWithImage:[[UIImage imageNamed:@"002"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] atIndex:1 animated:YES];

        //禁用 指定分段

        [seg setEnabled:NO forSegmentAtIndex:3];

        //设置指定分段宽度0 自动设置设置宽

        //[seg setWidth:40 forSegmentAtIndex:0];

        //设置tintColor

        seg.tintColor = [UIColor redColor];

        //设置背景图片 竖屏

        [seg setBackgroundImage:[UIImage imageNamed:@"toolBar"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

        //设置 内容偏移量

        //width >0 右偏移 height >0 向下偏移

        [seg setContentOffset:CGSizeMake(5, 5) forSegmentAtIndex:0];

        

        //更改属性字符串(修改内容字符串的颜色和大小)

        NSDictionary *dict = @{NSFontAttributeName:[UIFont systemFontOfSize:20],NSForegroundColorAttributeName:[UIColor yellowColor]};

        

        [seg setTitleTextAttributes:dict forState:UIControlStateNormal];

        

        //增加事件 点击分段值改变触发

        [seg addTarget:self action:@selector(segClick:) forControlEvents:UIControlEventValueChanged];

        [self.view addSubview:seg];

        [seg release];

    }

    - (void)segClick:(UISegmentedControl *)seg {

        //seg.selectedSegmentIndex 被点击的分段索引

        //[seg titleForSegmentAtIndex:seg.selectedSegmentIndex]获取分段的标题

        NSLog(@"index:%ld title:%@",seg.selectedSegmentIndex,[seg titleForSegmentAtIndex:seg.selectedSegmentIndex]);

    }

    四、警告视图

    遵守协议<UIAlertViewDelegate>

    @interface ViewController8 ()<UIAlertViewDelegate>

    @end

    - (void)creatAlertView{

        //警告视图

        NSArray *titles = @[@"普通",@"用户",@"密码",@"登录注册"];

        for (NSInteger i = 0; i < titles.count; i++) {

            UIButton *button = [MyControl creatButtonWithFrame:CGRectMake(110, 100+40*i, 100, 30) target:self sel:@selector(btnClick:) tag:101+i image:nil title:titles[i]];

            [self.view addSubview:button];

        }

    }

    - (void)btnClick:(UIButton *)button {

        //四种不同风格的警告视图

        /*

         UIAlertViewStyleDefault = 0,

         UIAlertViewStyleSecureTextInput,

         UIAlertViewStylePlainTextInput,

         UIAlertViewStyleLoginAndPasswordInput

         */

        switch (button.tag) {

            case 101://普通

            {

                UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"警告" message:@"非法入侵" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];

                //设置类型

                alertView.alertViewStyle = UIAlertViewStyleDefault;

                alertView.tag = 201;

                

                [alertView show];

                [alertView release];

                

            }

                break;

            case 102://用户

            {

                UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"角色名称" message:nil delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];

                //设置类型

                alertView.alertViewStyle = UIAlertViewStylePlainTextInput;

                alertView.tag = 202;

                

                [alertView show];

                [alertView release];

                

            }

                break;

            case 103://密码

            {

                UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"密码" message:nil delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];

                //设置类型

                alertView.alertViewStyle = UIAlertViewStyleSecureTextInput;

                alertView.tag = 203;

                

                [alertView show];

                [alertView release];

            }

                break;

            case 104://登录注册

            {

                UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"登录" message:nil delegate:self cancelButtonTitle:@"登录" otherButtonTitles:@"注册", nil];

                //设置类型

                alertView.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput;

                alertView.tag = 204;

                

                [alertView show];

                [alertView release];

            }

                break;

            

                

            default:

                break;

        }

    }

    #pragma mark - 代理方法

    - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {

        //通过tag区分alertView

        //通过类型也区分 不同类型的alertView

        switch (alertView.alertViewStyle) {

            case UIAlertViewStyleDefault:

            {

                NSLog(@"普通警告视图:%ld",buttonIndex);

            }

                break;

            case UIAlertViewStylePlainTextInput:

            {

                //获取 alertView中textField

                UITextField *text1 = [alertView textFieldAtIndex:0];

                NSLog(@"用户:%@",text1.text);

            }

                break;

            case UIAlertViewStyleSecureTextInput:

            {

                //获取 alertView中textField

                UITextField *text1 = [alertView textFieldAtIndex:0];

                NSLog(@"密码:%@",text1.text);

            }

                break;

            case UIAlertViewStyleLoginAndPasswordInput:

            {

                UITextField *text1 = [alertView textFieldAtIndex:0];

                NSLog(@"用户名:%@",text1.text);

                

                UITextField *text2 = [alertView textFieldAtIndex:1];

                NSLog(@"密码:%@",text2.text);

            }

                break;

            

                

            default:

                break;

        }

    }

     五、菊花

    - (void)creatAIV{

        //UIActivityIndicatorView 活动指示器 -》菊花/风火轮

        //普通的视图

        /*

         UIActivityIndicatorViewStyleWhiteLarge,//大白

         UIActivityIndicatorViewStyleWhite,//小白

         UIActivityIndicatorViewStyleGray,//小灰

         */

        UIActivityIndicatorView *view = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];

        

        view.frame = CGRectMake(100, 100, 100, 100);

        //放到中间

        view.center = self.view.center;

        

        //默认必须转动 才显示

        //view.hidesWhenStopped = NO; 默认 停止转动隐藏

        //改变 转动的颜色

        view.color = [UIColor redColor];

        

        [view startAnimating];

        

        //2s之后 停止菊花转动

        //withObject:传得就是 click:的参数

        [self performSelector:@selector(click:) withObject:view afterDelay:2];

        

        //打开 状态栏上的系统自带的网络小菊花

        [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;

        

        [self.view addSubview:view];

        [view release];

        

    }

    - (void)click:(UIActivityIndicatorView *)view {

        if (view.isAnimating) {

            [view stopAnimating];//停止转动

            [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;//关闭

        }

    }

     六、文本输入框

    - (void)creatUITextView{

        //UITextField 只能输入一行

        

        //iOS7之后 滚动视图粘到带导航的视图上时,滚动视图的内容会自动向下偏移64像素,

        //如果不想自动偏移 那么我们需要取消导航的影响

        

        self.automaticallyAdjustsScrollViewInsets = NO;

        //或者

        //self.edgesForExtendedLayout = UIRectEdgeNone;

        

        

        //UITextView //文本输入 多行 (可以滚动)

        UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(10, 100, 300, 200)];

        textView.tag = 101;

        

        //设置背景

        textView.backgroundColor = [UIColor orangeColor];

        //设置内容

        textView.text = @"xxxxxxx小红和小黄有激情xxxxxxx小红和小黄有激情xxxxxxx小红和小黄有激情xxxxxxx小红和小黄有激情xxxxxxx小红和小黄有激情xxxxxxx小红和小黄有激情xxxxxxx小红和小黄有激情xxxxxxx小红和小黄有激情xxxxxxx小红和小黄有激情xxxxxxx小红和小黄有激情xxxxxxx小红和小黄有激情xxxxxxx小红和小黄有激情xxxxxxx小红和小黄有激情xxxxxxx小红和小黄有激情xxxxxxx小红和小黄有激情xxxxxxx小红和小黄有激情xxxxxxx小红和小黄有激情xxxxxxx小红和小黄有激情xxxxxxx小红和小黄有激情xxxxxxx小红和小黄有激情";

        //字体颜色

        textView.textColor = [UIColor redColor];

        //字体大小

        textView.font = [UIFont systemFontOfSize:20];

        

        //设置是否可以滚动

        //textView.scrollEnabled = NO;

        //设置是否可以编辑

        //textView.editable = NO;

        

        //设置代理

        textView.delegate = self;

        

        

        [self.view addSubview:textView];

        [textView release];

    }

    //收键盘

    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

        UITextView *text = (UITextView *)[self.view viewWithTag:101];

        [text resignFirstResponder];

    }

    #pragma mark - UITextViewDelegate

    //将要进入编辑模式的时候调用

    - (BOOL)textViewShouldBeginEditing:(UITextView *)textView {

        NSLog(@"%s",__func__);

        return YES;//是否可以进入编辑模式

    }

    //已经进入编辑模式

    - (void)textViewDidBeginEditing:(UITextView *)textView {

        NSLog(@"%s",__func__);

    }

    //将要退出编辑模式调用

    //决定是否可以结束编辑模式

    - (BOOL)textViewShouldEndEditing:(UITextView *)textView {

        NSLog(@"%s",__func__);

        return YES;

    }

    //已经退出编辑模式

    - (void)textViewDidEndEditing:(UITextView *)textView {

        NSLog(@"%s",__func__);

    }

    //已经修改内容就会调用

    //修改的时候一直调用

    - (void)textViewDidChange:(UITextView *)textView {

        NSLog(@"%s",__func__);

    }

    //只要修改 或者 选中 就会调用

    - (void)textViewDidChangeSelection:(UITextView *)textView {

        NSLog(@"%s",__func__);

    }

    //将要把内容 输入到 textView 的时候调用

    //YES 表示可以输入到textView中  NO 不可以

    //range 光标的位置 text :将要输入的内容

    - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {

        NSLog(@"range:%@ text:%@",NSStringFromRange(range),text);

        return YES;

    }

     八、下载进度条

    - (void)creatProgressView{

        //进度条  下载进度等

        UIProgressView *proView = [[UIProgressView alloc] initWithFrame:CGRectMake(10, 100, 300, 30)];

        

        //更改 progress就可以显示进度

        //proView.progress = 0.5;

        //更改轨道颜色

        //    proView.progressTintColor = [UIColor redColor];

        //进度颜色

        //    proView.trackTintColor = [UIColor greenColor];

        

        //模拟下载

        //启动一个定时器 每个1s 更改下载进度

        //userInfo 给定时器 触发的 函数传入一个对象 内部timer.userInfo获取

        

        [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerClick:) userInfo:proView repeats:YES];

        

        [self.view addSubview: proView];

        [proView release];

        

    }

    - (void)timerClick:(NSTimer *)timer {

        //获取传入的值

        UIProgressView *view = timer.userInfo;

        if (view.progress < 1.0) {

            view.progress += 0.1;

        }else {

            //下载完成 终止定时器

            [timer invalidate];

        }

    }

    九、滑动条

    - (void)creatSlider{

        UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(100, 200, 200, 30)];

        //设置最小值

        slider.minimumValue = 0;

        //设置最大值

        slider.maximumValue = 1;//默认是1

        //设置轨道颜色

        slider.minimumTrackTintColor = [UIColor redColor];

        slider.maximumTrackTintColor = [UIColor yellowColor];

        //设置 最小值、最大值的图片

        slider.minimumValueImage = [UIImage imageNamed:@"003"];

        slider.maximumValueImage = [UIImage imageNamed:@"002"];

        //设置 小白球的图片

        

        [slider setThumbImage:[UIImage imageNamed:@"003"] forState:UIControlStateNormal];//正常状态

        

        [slider setThumbImage:[UIImage imageNamed:@"002"] forState:UIControlStateHighlighted];//高亮状态

        

        //设置 旋转  修改 transform --》旋转 / 翻转 / 缩放

        //相对于 最原始的位置旋转-九十度

        slider.transform = CGAffineTransformMakeRotation(-M_PI_2);

        

        //长按是否连续触发 事件函数

        slider.continuous = YES;//NO长按滑动 只触发一次 YES连续触发函数

        

        //增加事件

        [slider addTarget:self action:@selector(sliderClick:) forControlEvents:UIControlEventValueChanged];

        

        

        [self.view addSubview:slider];

        [slider release];

        

    }

    - (void)sliderClick:(UISlider *)sd {

        NSLog(@"sd:%f",sd.value);//打印值

    }

     十、开关控件

    //常见控件 1.普通视图2.事件驱动型控件(一般UIControl的子类)

    - (void)creatView {

        //开关 1.用设置界面

        

        UISwitch *sw = [[UISwitch alloc] initWithFrame:CGRectMake(0, 100, 200, 50)];

        //frame 只能改变位置不能改变 实际大小 (系统有默认大小)

        //iOS7之后没有效果  设置 开关大小  边框的颜色

        sw.tintColor = [UIColor grayColor];

        //设置 开得时候 颜色

        sw.onTintColor = [UIColor orangeColor];

        //设置小白球颜色

        sw.thumbTintColor = [UIColor purpleColor];

        //iOS7之后无效果

        //sw.onImage = [UIImage imageNamed:@"002"];

        //sw.offImage = [UIImage imageNamed:@"002"];

        

        //设置开关的默认状态开/关

        sw.on = YES;

        

        //增加事件

        //当 手指 触发小球 开关状态发生改变的时候调用

        [sw addTarget:self action:@selector(swClick:) forControlEvents:UIControlEventValueChanged];

        

        [self.view addSubview:sw];

        [sw release];

    }

    //给谁增加的事件 参数就是谁

    //当 手指 触发小球 开关状态发生改变的时候调用

    - (void)swClick:(UISwitch *)sw {

        NSLog(@"开关被触发%d",sw.on);//sw.on /sw.isOn 获取开关的状态

    }

  • 相关阅读:
    object sender和EventArgs e含义
    将十进制小数转化为二进制小数的方法
    什么是类、对象、方法、属性、类的成员
    asp.net代码中尖括号和百分号的含义
    打开某个AVI文件,explorer.exe遇到问题需要关闭的解决方法
    中国娱乐学习门户负责人吴晓林讲解项目
    系统流程图与业务流程图
    如何去掉Zblog的版权信息(powered by)
    利用教育游戏丰富与深化综合实践活动课程教与学的理论与实践研究 课题
    浅析C# 中object sender与EventArgs e(转)
  • 原文地址:https://www.cnblogs.com/PengFei-N/p/4703177.html
Copyright © 2020-2023  润新知