• UI常用控件


    UICommonlyUsedControls

    【UI常用控件】

    不需要学习多么深入,但是要知道系统提供的有用的控件。

    一、UISwitch(开关)

    二、UIActivityIndicatorView(活动指示视图)

    三、UISlider(滑动条)

    四、UIProgressView(进度条)

    五、UIStepper(步进器)

    六、UISegmentedControl(分段控制)

    七、UIActionSheet(操作表单)

    八、UIAlertView(警告视图)  [alertView show]

    九、UITextView(文本视图)

    一、UISwitch(开关)

    #pragma mark - 开关

    - (void)createUISwitch {

        UISwitch *sw = [[UISwitch alloc]init];

        //开关的宽高没有影响

        sw.frame = CGRectMake(10, 100, 0, 0);

        //用形变transform 可以修改大小

        sw.transform = CGAffineTransformMakeScale(1.5, 1.5);

        [self.view addSubview:sw];

        //添加事件

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

        //设置边框颜色

        sw.tintColor = [UIColor blueColor];

        //设置打开的颜色

        sw.onTintColor = [UIColor purpleColor];

        //设置小球的颜色

        sw.thumbTintColor = [UIColor greenColor];

    }

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

        if (sw.on == YES) {

            NSLog(@"开着");

        }

        else{

             NSLog(@"关闭");

        }

    }

    二、UIActivityIndicatorView(活动指示视图)

        //状态栏上边的网络加载指示器

        [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;

    - (void)createView {

    //    UIActivityIndicatorViewStyleWhiteLarge,大白块

    //    UIActivityIndicatorViewStyleWhite,白色

    //    UIActivityIndicatorViewStyleGray,灰色

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

        avi.frame = CGRectMake(0, 0, 50, 50);

        avi.center = self.view.center;

        avi.tag = 100;

        [self.view addSubview:avi];

        [avi startAnimating];

    }

    //触摸屏幕时让指示器停止

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

        [super touchesBegan:touches withEvent:event];

        UIActivityIndicatorView *avi = (id)[self.view viewWithTag:100];

        [avi stopAnimating];

       //关闭状态栏上边的网络加载指示器

        [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;

    }

    三、UISlider(滑动条)

    - (void)createView {

        UISlider *sl = [[UISlider alloc]init];

        //高度不生效

        sl.frame = CGRectMake(100, 100, 300, 100);

        [self.view addSubview:sl];

        //设置颜色

        //运行过的滑动条的颜色

        sl.minimumTrackTintColor = [UIColor greenColor];

        //刚开始滑动条的颜色

        sl.maximumTrackTintColor = [UIColor redColor];

        //球球的颜色

        sl.thumbTintColor = [UIColor purpleColor];

        //设置值

        //球球在滑动条上的位置,不设置默认0;

        sl.minimumValue = 0.3;

        sl.maximumValue = 1.0;

        //初始值  球球在滑动条上的初始位置

        sl.value = 0.3;

        [sl addTarget:self action:@selector(changeValue:) forControlEvents:UIControlEventValueChanged];

        //是否持续调用事件  默认YES,在滑动的过程中一直改变值 ,NO只有在滑动停止的时候才改变值

        sl.continuous = NO;

    }

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

        NSLog(@"%2f",sender.Value);

    }

    四、UIProgressView(进度条)

    - (void)createView {

    //    UIProgressViewStyleDefault,     // normal progress bar

    //    UIProgressViewStyleBar,

        UIProgressView *pv = [[UIProgressView alloc]initWithProgressViewStyle:UIProgressViewStyleDefault];

        //高度无效

        pv.frame = CGRectMake(20, 100, 300, 100);

        [self.view addSubview:pv];

        //设置进度条颜色

        pv.trackTintColor = [UIColor greenColor];

        //进度条走过的颜色

        pv.progressTintColor = [UIColor redColor];

        //进度

        pv.progress = 0.1;

        [self autoChange:pv];

       // [pv setProgress:0.8 animated:YES];

    }

    //自动增加

    - (void)autoChange:(UIProgressView*)pv {

        CGFloat progress = pv.progress;

        progress +=0.001;

        [pv setProgress:progress animated:YES];

        if (progress >= 1.0) {

            return;

        }

        //延迟调用一个方法

        [self performSelector:@selector(autoChange:) withObject:pv afterDelay:0.01];

    }

    五、UIStepper(步进器)

    //步进器

    - (void)createView {

        UIStepper *sp = [[UIStepper alloc]init];

        //宽高无效

        sp.frame = CGRectMake(20, 100, 200, 100);

        [self.view addSubview:sp];

        //添加事件

        [sp addTarget:self action:@selector(stepperChange:) forControlEvents:UIControlEventValueChanged];

        //设置值

        sp.minimumValue = 5;

        sp.maximumValue = 100;

        //一次加多少

        sp.stepValue = 5;

        

        sp.tintColor = [UIColor yellowColor];

        

        //设置跨越边界,默认不能跨越

        sp.wraps = NO;

        //长按是否持续加减

        sp.autorepeat = NO;

        //是否持续调用事件

        sp.continuous = NO;

    }

    - (void)stepperChange:(UIStepper*)sp {

        NSLog(@"%.2f",sp.value);

    }

    六、UISegmentedControl(分段控制)

    - (void)createView {

        NSArray *items = @[@"好友",@"消息",@"动态"];

        UISegmentedControl *sc = [[UISegmentedControl alloc]initWithItems:items];

        sc.frame = CGRectMake(100, 100, 200, 50);

        

        [self.view addSubview:sc];

        

        //设置颜色

        sc.backgroundColor = [UIColor greenColor];

        sc.tintColor = [UIColor redColor];

        //设置字体大小和颜色(对应状态)

        NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor blueColor],NSForegroundColorAttributeName,[UIFont systemFontOfSize:20],NSFontAttributeName, nil];

        [sc setTitleTextAttributes:dic forState:UIControlStateSelected];

        

        //添加事件

        [sc addTarget:self action:@selector(changeValue:) forControlEvents:UIControlEventValueChanged];

        

    }

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

        NSLog(@"%ld",sender.selectedSegmentIndex);

        //事件分发

    }

    七、UIActionSheet(操作表单)

    /**

     *  ios8以后 新的actionSheet 和alertView 和在一起

     */

    - (void)createAlertViewController {

    //    UIAlertControllerStyleActionSheet = 0,

    //    UIAlertControllerStyleAlert

        UIAlertController *alc= [UIAlertController alertControllerWithTitle:@"标题" message:@"信息" preferredStyle:UIAlertControllerStyleActionSheet];

        //添加按钮

    //    UIAlertActionStyleDefault = 0,

    //    UIAlertActionStyleCancel,

    //    UIAlertActionStyleDestructive

        //没有设置代理,用block替换了代理

        UIAlertAction *action = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

            NSLog(@"确定按钮点击");

        }];

        UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {

            

        }];

        UIAlertAction *desc = [UIAlertAction actionWithTitle:@"其他" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {

            

        }];

        //添加进去

        [alc addAction:action];

        [alc addAction:cancel];

        [alc addAction:desc];

        [self presentViewController:alc animated:YES completion:nil];

        

        

    }

    - (void)createView {

        UIActionSheet *actionSheet = [[UIActionSheet alloc]initWithTitle:@"title" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:@"desc" otherButtonTitles:@"其他1",@"其他2", nil];

        actionSheet.tag = 100;

        //显示

        [actionSheet showInView:self.view]; 

    }

    //点击了哪个Button

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

        NSLog(@"%ld",buttonIndex);

        //这里边做事件分发  

    }

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

        [super touchesBegan:touches withEvent:event];

    //    UIActionSheet *ac = (id)[self.view viewWithTag:100];

    //    [ac showInView:self.view];

        [self createView];

    }

    八、UIAlertView(警告视图)

    @interface ViewController7 ()<UIAlertViewDelegate>

    @end

    - (void)createView {

        UIAlertView *al = [[UIAlertView alloc]initWithTitle:@"标题" message:@"你好" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定",@"更新", nil];

        //显示

        [al show];

    }

    //点击按钮的代理

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

        NSLog(@"%ld",buttonIndex);

        if (alertView.tag == 100) {

            UIAlertView *al1 = [[UIAlertView alloc]initWithTitle:@"另一个alert" message:nil delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];

        al1.tag = 101;

    //        UIAlertViewStyleDefault = 0,

    //        UIAlertViewStyleSecureTextInput,安全输入

    //        UIAlertViewStylePlainTextInput,普通输入

    //        UIAlertViewStyleLoginAndPasswordInput 两个输入框

        al1.alertViewStyle = UIAlertViewStylePlainTextInput;

            UITextField *textf = [al1 textFieldAtIndex:0];

            textf.placeholder = @"请输入用户名";

        [al1 show];

        }

        else {

            NSLog(@"点了另一个alertView");

            UITextField *textfeild = [alertView textFieldAtIndex:0];

            NSLog(@"输入了%@",textfeild.text);

        }

    }

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

        [super touchesBegan:touches withEvent:event];

        [self createView];

    }

    九、UITextView(文本视图)

    - (void)createTextView {

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

        [self.view addSubview:textView];

        //取消导航对布局的影响

        self.edgesForExtendedLayout = UIRectEdgeNone;

        

        //

        textView.backgroundColor = [UIColor orangeColor];

        textView.textColor = [UIColor purpleColor];

        textView.font = [UIFont systemFontOfSize:30];

        //取消滑动

        textView.scrollEnabled = NO;

    //    textView.text = @"jdfjdjglsdfjgjdfsljgsldfjhklsjglkjfdlkjhmlksfjhkllljmfdotjrkjhodkrtoghtrgkhotrkgodrtkgkdtrkgdotkrgoktrgokrtgtrh";

    //    //设置不可编辑(必须text里边有内容)

    //    textView.editable = NO;

        

        //代理方法 设置代理

        textView.delegate = self;

        

    }

    //实现代理方法

    //是否允许开始编辑

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

        NSLog(@"开始编辑");

        return YES;

    }

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

        NSLog(@"结束编辑");

        return YES;

    }

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

        NSLog(@"已经开始编辑");

    }

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

        NSLog(@"已经改变");

    }

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

        NSLog(@"只要选中内容就会调用");

    }

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

        //只要输入内容就会调用

        NSLog(@"%@",text);

        return YES;

    }

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

        [super touchesBegan:touches withEvent:event];

        //直接找到textView 取消第一响应

        //self.view endEditing

        [self.view endEditing:YES];

    }

  • 相关阅读:
    wpf读取mysql字段类型为text的问题
    设计模式简介
    为 RESTful API 配置 CORS 实现跨域请求
    js FileReader 读取文件
    js读取文件fileReader
    制作svg动态图形效果
    H5与Native交互之JSBridge技术
    位(bit)、字节(byte)、字符、编码之间的关系
    node.js的net模块实现socket通信
    Flexbox如何将页面底部固定在屏幕最下方
  • 原文地址:https://www.cnblogs.com/jiang-xiao-yan/p/5952543.html
Copyright © 2020-2023  润新知