美文网首页iOS_Dev_Tips我收录的代码iOS 艾欧艾斯
若干搭建UI常用的小控件(二)

若干搭建UI常用的小控件(二)

作者: ac41d8480d04 | 来源:发表于2015-10-09 13:12 被阅读1070次

    本篇主要向大家介绍剩下几个较为常用的UI控件,主要包括UIActivityIndicatorView、
    UIStepper、
    UISegmentControl、
    UIProgressView。


    相关文章:

    TextField相关基础用法
    若干搭建UI常用的小控件(一)


    UIActivityIndicatorView

    UIActivityIndicatorView在现在其实并不是个十分常用的UI控件,现在大部分的App都是通过第三方库或者自己定制的控件来实现功能,但是因为次控件还是属于一个较为基础的控件,所以在本篇文章中还是要进行简单的介绍一下。

    UIActivityIndicatorView继承于UIView。

    UIActivityIndicatorView* aiv = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
    //初始化创建
    
    UIActivityIndicatorViewStyleWhiteLarge  //大白
    UIActivityIndicatorViewStyleWhite       //小白
    UIActivityIndicatorViewStyleGray        //小灰
    
    aiv.transform = CGAffineTransformMakeScale(3, 5);
    //修改大小,使用变形属性
    
    aiv.bounds = CGRectMake(0, 0, 320, 480);
    //bounds属性的大小改不了,所以应该修改中心
    
    - (void)startAnimating;      //启动动画
    - (void)stopAnimating;       //停止动画
    - (BOOL)isAnimating;         //判断状态
    

    UIStepper

    //创建stepper, 大小无用
    UIStepper * stepper = [[UIStepper alloc] initWithFrame:CGRectMake(100, 100, 10, 10)];
    
    //设置stepper最大值,最小值,当前值
    stepper.maximumValue = 100.0;
    stepper.minimumValue = 0.0;
    stepper.value = 60.0;
    //设置变化间隔,默认是1
    stepper.stepValue = 0.5;
    
    //设置按住,是否显示自动增长,默认YES
    //当自动增长设为NO时,该属性无效
    //当自动增长设为YES,该属性YES,可见增长,NO,不可见增长
    stepper.continuous = YES;
    
    //设置是否自动增长
    stepper.autorepeat = YES;
    
    //设置是否首尾循环
    stepper.wraps = NO;
    
    //设置颜色
    stepper.tintColor = [UIColor redColor];
    
    
    //添加事件
    [stepper addTarget:self action:@selector(valueChanged:) forControlEvents:UIControlEventValueChanged];
    //stepper只能响应valueChanged事件
    
    //设置背景图,图片大,stepper会变大
    [stepper setBackgroundImage:[UIImage imageNamed:@"Image1"] forState:UIControlStateNormal];
    [stepper setBackgroundImage:[UIImage imageNamed:@"Image2"] forState:UIControlStateHighlighted];
    
    //设置中分线图片(了解)
    [stepper setDividerImage:[UIImage imageNamed:@"Image3"] forLeftSegmentState:UIControlStateHighlighted rightSegmentState:UIControlStateNormal];
    //根据两键状态不同,可以设置多张图片
    
    
    
    //获取某个状态的图片
    //因为每个状态下可以有不同图片,这个方法可以获得个状态图片。
    UIImage * image = [stepper dividerImageForLeftSegmentState:UIControlStateHighlighted rightSegmentState:UIControlStateNormal];
    
    [stepper setDividerImage:image forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateHighlighted];
    
    
    image = [[UIImage imageNamed:@"Image4"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    
    //设置加号(减号)图片
    [stepper setIncrementImage: image forState:UIControlStateNormal];
    

    UISegmentControl

    SegementControl是一个极为常用的UI控件,多用在作为同一个页面的不同分区等。

    //创建items数组
    NSArray * items = @[@"大傻", image, @"三大傻"];
    
    //创建SC
    UISegmentedControl * sc = [[UISegmentedControl alloc] initWithItems:items];
    //添加坐标
    sc.frame = CGRectMake(50, 100, 200, 50);
    
    //设置tintColor
    sc.tintColor = [UIColor redColor];
    
    //设置当前选中的segment
    sc.selectedSegmentIndex = 2;
    //这个方法也可以判断当前选中的segment
    
    
    //设置不能选中,松手后还原
    sc.momentary = YES;
    
    
    
    //设置某个segment宽度
    [sc setWidth:0 forSegmentAtIndex:1];
    
    
    //如果这个值是YES,设为0的segment宽度,自适应
     //    sc.apportionsSegmentWidthsByContent = YES;
    
    //设置某个segment无效
    [sc setEnabled:NO forSegmentAtIndex:2];
    
    //判断某个segment是否有效
    BOOL ret = [sc isEnabledForSegmentAtIndex:2];
    NSLog(@"%d", ret);
    
    
    //设置某个segment 标题
    [sc setTitle:@"都傻" forSegmentAtIndex:0];
    //返回某个segment 标题
    //- (NSString *)titleForSegmentAtIndex:(NSUInteger)segment;
    
    
    //设置某个segment 图片
    [sc setImage:image forSegmentAtIndex:2];
    //  - (UIImage *)imageForSegmentAtIndex:(NSUInteger)segment;
    //返回图片
    
    
    //添加事件
    [sc addTarget:self action:@selector(valueChanged:) forControlEvents:UIControlEventValueChanged];
    
    //添加背景图片
    [sc setBackgroundImage:[UIImage imageNamed:@"10_0.jpg"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
    //横屏纵屏,可以设两张背景
    

    UIProgressView

    UIProgressView在现在并不是十分常用,大部分情况下用于拥有音频或者视频播放功能的App。
    同样的,UIProgressView继承于UIView。

    //高设置无用
    UIProgressView * pv = [[UIProgressView alloc] initWithFrame:CGRectMake(10, 400, 300, 10)];
    pv.tag = 1;
    
    //最大值是1,最小值是0
    //设置当前值
    pv.progress = 0;
    
    //设置tintColor
    pv.tintColor = [UIColor redColor];
    pv.trackTintColor = [UIColor yellowColor];
    
    //如果想要加宽进度条
    pv.transform = CGAffineTransformMakeScale(1, 10);
    
    //如果想竖起进度条
    pv.transform = CGAffineTransformRotate(pv.transform, - M_PI_2);
    
    //添加图片 设置拉伸的竖线
    UIImage * image1 = [[UIImage imageNamed:@"image1"] stretchableImageWithLeftCapWidth:5 topCapHeight:0];
    
    UIImage * image2 = [[UIImage imageNamed:@"image2"] stretchableImageWithLeftCapWidth:50 topCapHeight:0];
    
    pv.trackImage = image2;
    pv.progressImage = image1;

    相关文章

      网友评论

      本文标题:若干搭建UI常用的小控件(二)

      本文链接:https://www.haomeiwen.com/subject/niwwcttx.html