UI 控件介绍

本文详细介绍了iOS中几种常见的UI控件,包括UIsegmentedControl, UIStepper, UIActivityIndicatorView, UISwitch, UIPagerControl和UISlider的基本用法,如初始化、属性设置、事件响应等,是iOS开发者了解和使用这些控件的实用参考。" 80344961,7530799,Linux系统排错指南,"['Linux运维', '系统修复', '引导修复', '内核管理', '命令行工具']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 本文章简单介绍几个UI小控件,对这些控件的属相和方法进行了简单的总结。控件包括 UIsegmentedControl,  UIStepper  ,UIActivityIndicatorView,  UISwitch   UIPagerControl  ,UIProgressView,UISlider.


UIsegmentedControl

 初始化

 - (instancetype)init;

 - (instancetype)initWithFrame:(CGRect)frame;

 //需要配合一个数组设置。数组内容为它每个部分的标题

 - (instancetype)initWithItems:(NSArray *)items;

  UISegmentControl 初始化的时候可以不用设置 frame 属性

   frame 默认值是 {{0, 0}, {自动宽度, 29}}

 

 属性

 //默认值no,设置为yes就无法保持被选中状态,就像按钮一样了。

 @property (nonatomic, getter=isMomentary) BOOL momentary;

 //获取标签个数,(只读),没有set方法

 @property (nonatomic, readonly) NSUInteger numberOfSegments;

 //设置为yes,各部分的宽度自动适应其内容,设置为no,其宽度为各部分的最大宽度。默认值时no

 @property (nonatomic) BOOL apportionsSegmentWidthsByContent;

 //被选中选线的索引,既第几个被选中,就是几,从0开始。

 @property (nonatomic) NSInteger selectedSegmentIndex; ⭐️

 //着色区域的颜色(标题,边框)

 @property (nonatomic, strong) UIColor *tintColor;

 

 

 常用方法

 //对应位置插入一个选项并设置标题

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

 //对应插入选项并设置图片

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

 //移除对应的xuanxiang

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

 //移除所有的选项

 - (void)removeAllSegments;

 //设置某个选项不被选中

 - (void)setEnabled:(BOOL)enabled forSegmentAtIndex:(NSUInteger)segment;

 //判断某个选项是否能被选中

 - (BOOL)isEnabledForSegmentAtIndex:(NSUInteger)segment;

 //设置选项的标题

 - (void)setTitle:(nullable NSString *)title forSegmentAtIndex:(NSUInteger)segment;

 //设置选项图片

 - (void)setImage:(nullable UIImage *)image forSegmentAtIndex:(NSUInteger)segment;

 //设置对应选项的宽度

 - (void)setWidth:(CGFloat)width forSegmentAtIndex:(NSUInteger)segment;

 //设置对应选项的标题偏移值

 - (void)setContentOffset:(CGSize)offset forSegmentAtIndex:(NSUInteger)segment;

 //获取某选项的标题

 - (nullable NSString *)titleForSegmentAtIndex:(NSUInteger)segment;

 //获取某选项的图片

 - (nullable UIImage *)imageForSegmentAtIndex:(NSUInteger)segment;

 //获取某选项的宽度,只有设置了对应的宽度才有,不设置的获取到的事0

 - (CGFloat)widthForSegmentAtIndex:(NSUInteger)segment;

 //获取某选项的偏移值,是一结构体。

 - (CGSize)contentOffsetForSegmentAtIndex:(NSUInteger)segment;

 

 

 //触发事件方法。

 - (void)addTarget:(nullable id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;

 

 [self.segmentedControl addTarget:self  

                           action:@selector(changValue:)

                 forControlEvents:UIControlEventValueChanged];

 

 - (void)changValue:(id)sender {

 NSLog(@"Changed Value");

 }

 

 

  •  UIStepper

 

 初始化

 - (instancetype)init;

 - (instancetype)initWithFrame:(CGRect)frame;

 

 

  UIStepper 初始化的时候可以不用设置 frame 属性

   frame 默认值是 {{0, 0}, {固定宽度固定高度}}

 

 

 属性

 //设置是否连续,默认值时yes,设置为no,数字一直都在变化,但只会在松开鼠标的时候才显示。

 @property (nonatomic, getter=isContinuous) BOOL continuous;

 //默认值时yes。设置为no,点击一次变化一次,一直按着期间不 会发生变化,只有松开鼠标时,才回变化

 @property (nonatomic) BOOL autorepeat;

 //是否设制循环,设置为yes时,到最大值时,会跳会最小值,到最小值时会变味最大值

 @property (nonatomic) BOOL wraps;

 //当前的数值时多少

 @property (nonatomic) double value;

 //设置最小值

 @property (nonatomic) double minimumValue;

 //设置最大值

 @property (nonatomic) double maximumValue;

 //设置步进值,几点击一次,增加或者减少多。

 @property (nonatomic) double stepValue;

 

 

 方法

 //设置背景图片(背景是指biank),着里需要的都是着色图片

 - (void)setBackgroundImage:(nullable UIImage*)image forState:(UIControlState)state;

 //设置加号的图片,就是将加号改为图片的样式

 - (void)setIncrementImage:(nullable UIImage *)image forState:(UIControlState)state;

 //设置减号 的图片,将减号设置为图片的样式。

 - (void)setDecrementImage:(nullable UIImage *)image forState:(UIControlState)state;

 //设置 中间分隔线为图片的样式。

 (void)setDividerImage:(nullable UIImage*)image forLeftSegmentState:(UIControlState)leftState rightSegmentState:(UIControlState)rightState;

 //分别设置中间分隔线两边的样式

 - (UIImage *)dividerImageForLeftSegmentState:(UIControlState)state rightSegmentState:(UIControlState)state;

 //获取中间分隔线,加号,减号的图片

 - (UIImage *)incrementImageForState:(UIControlState)state;

 - (UIImage *)backgroundImageForState:(UIControlState)state;

 - (UIImage *)decrementImageForState:(UIControlState)state;

 

 //事件方法

 - (void)addTarget:(nullable id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;

 

 [self.stepper addTarget:self

                  action:@selector(changValue:)

        forControlEvents:UIControlEventValueChanged];

 

 

 - (void)changValue:(id)sender {

      NSLog(@"Changed Value");

 }

 

  •  UIActivityIndicatorView


 初始化

 

 - (instancetype)init;

 (instancetype)initWithFrame:(CGRect)frame;

 //初始化设置菊花的样式,有菊花的

 (instancetype)initWithActivityIndicatorStyle:(UIActivityIndicatorViewStyle)style;

 

 frame 属性无论设置多大菊花实际尺寸不会变

 

 属性

 //设置菊花的样式

 @property (nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle;

 //当菊花停止时不显示,默认值时yes

 @property (nonatomic) BOOL hidesWhenStopped;

 //设置菊花的颜色,

 @property (nonatomic, strong) UIColor *color;

 

 方法

 //菊花开始转动

 - (void)startAnimating;

 //菊花停止zhuand

 - (void)stopAnimating;

 //判断菊花是否在zhuand

 - (BOOL)isAnimating;

 

 

  •  UISwitch

 

 

 //初始化

 - (instancetype)init;

 - (instancetype)initWithFrame:(CGRect)frame;

 

 frame 属性只能修改顶点坐标无法修改尺寸坐标

 

 //属性

 //设置打开时的颜色

 @property (nonatomic, strong) UIColor *onTintColor;

 //边框的颜色

 @property (nonatomic, strong) UIColor *tintColor;

 //圆形开关的颜色

 @property (nonatomic, strong) UIColor *thumbTintColor;

 //打开时的图片ios7开始不用

 @property (nonatomic, strong) UIImage *onImage;

 //关闭时的图片ios7开始不用

 @property (nonatomic, strong) UIImage *offImage;

 //判断开关是否打开

 @property (nonatomic, getter=isOn) BOOL on;

 sw.on YESNO

 //打开时是否有动画

 - (void)setOn:(BOOL)on animated:(BOOL)animated;

 //添加事件

 - (void)addTarget:(nullable id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;

 

 

 [self.switcher addTarget:self

                   action:@selector(changValue:)

         forControlEvents:UIControlEventValueChanged];

 

 

 

  •  UIPagerControl

 

 初始化

 - (instancetype)init;

 - (instancetype)initWithFrame:(CGRect)frame;

 

 属性

 //设置共有几页

 @property(nonatomic) NSInteger numberOfPages;

 //当前在那一页

 @property(nonatomic) NSInteger currentPage;

 //只有一页时隐藏

 @property(nonatomic) BOOL hidesForSinglePage;

 //推迟显示当前页面。

 @property(nonatomic) BOOL defersCurrentPageDisplay;

 //设置所有点的颜色

 @property(nullable, nonatomic, strong) UIColor *pageIndicatorTintColor;

 //设置当前叶的颜色

 @property(nullable, nonatomic, strong) UIColor *currentPageIndicatorTintColor;

 

 

 方法

 //更新页面。与defersCurrentPageDisplay 配合使用

 - (void)updateCurrentPageDisplay;

 //获取最小的尺寸

 - (CGSize)sizeForNumberOfPages:(NSInteger)pageCount;

 //事件方法

 - (void)addTarget:(nullable id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;



 

  •  UISlider

 

 

 初始化

 - (instancetype)init;

 - (instancetype)initWithFrame:(CGRect)frame;

 

 属性

 //设置滑块最初的值

 @property(nonatomic) float value;

 //设置最小值

 @property(nonatomic) float minimumValue;

 //设置最大值

 @property(nonatomic) float maximumValue;

 //设置最小值端的图片

 @property(nonatomic,strong) UIImage *minimumValueImage;

 //设置最大值端的图片

 @property(nonatomic,strong) UIImage *maximumValueImage;

 //设置是否连续显示value的值,默认是yes,设置为no,就不连续显示

 @property(nonatomic,getter=isContinuous) BOOL continuous;

 //设置最小值那端的轨道颜色,

 @property(nonatomic,strong) UIColor *minimumTrackTintColor;

 //设置最大端的轨道颜色

 @property(nonatomic,strong) UIColor *maximumTrackTintColor;

 //设置滑块的颜色

 @property(nonatomic,strong) UIColor *thumbTintColor;

 //设置图片。

 @property(nonatomic,readonly) UIImage *currentThumbImage;

 @property(nonatomic,readonly) UIImage *currentMinimumTrackImage;

 @property(nonatomic,readonly) UIImage *currentMaximumTrackImage;

 

 

 

 //获取当前的值

 - (void)setValue:(float)value animated:(BOOL)animated;

 //设置图片

 - (void)setThumbImage:(nullable UIImage *)image forState:(UIControlState)state;

 - (void)setMinimumTrackImage:(nullable UIImage *)image forState:(UIControlState)state;

 - (void)setMaximumTrackImage:(nullable UIImage *)image forState:(UIControlState)state;

 //获取图片

 - (nullable UIImage *)thumbImageForState:(UIControlState)state;

 - (nullable UIImage *)minimumTrackImageForState:(UIControlState)state;

 - (nullable UIImage *)maximumTrackImageForState:(UIControlState)state;

 

 

 

 

 - (void)addTarget:(nullable id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;

 

 [self.slider addTarget:self

                 action:@selector(changValue:)

       forControlEvents:UIControlEventValueChanged];

 

 

 - (void)changValue:(id)sender {

     NSLog(@"Changed Value");

 }

  •  UIProgressView

 

 初始化

 (instancetype)init;

 (instancetype)initWithFrame:(CGRect)frame;

 (instancetype)initWithProgressViewStyle:(UIProgressViewStyle)style;

 

 属性

 //设置样式

 @property(nonatomic) UIProgressViewStyle progressViewStyle;

 //当前所处位置的值,

 @property(nonatomic) float progress;

 //完成部分的颜色

 @property(nonatomic, strong) UIColor *progressTintColor;

 //轨道的颜色

 @property(nonataomic, strong) UIColor *trackTintColor;

 //设置图片

 @property(nonatomic, strong) UIImage *progressImage;

 @property(nonatomic, strong) UIImage *trackImage;

 

 

 - (void)setProgress:(float)progress animated:(BOOL)animated;

 

 ***/




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值