-
本文章简单介绍几个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= YES/NO;
//打开时是否有动画
- (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;
***/