ios学习--UIStepper
2016-05-20 16:45
441 查看
数字输入控件UIStepper,它可以递进式输入数量。UIStepper继承自UIControl,它主要的事件是UIControlEventValueChanged,每当它的值改变了就会触发这个事件。
属性和方法
BOOL类型,默认YES,YES时表示当用户交互时会立刻发送ValueChange事件,NO则是只有等用户交互结束时才发送ValueChange事件
PS:若设置为YES,则长按会连续触发变化,若设置为NO,只有在按击结束后,才会触发。
BOOL类型,默认YES,YES时表示按住加号或减号不松手,数字会持续变化
PS:若设置为YES,则长按值会一直改变,若设置为NO,则一次点击只会改变一次值
PS:设置控制器的值是否循环(到达边界后,重头开始,默认为NO)
Double型 默认为1,Stepper的增量或者步数(例如stepValue 是10,则点一下加就加10,减也是减10),必须大于0,否则会报一个
访问 Stepper的值
默认是0,上限是maximumValue 下限是minimumValue,当数值改变时,会发送UIControlValueEventChanged给目标
定制化外观
6新增
- (UIImage *)backgroundImageForState:(UIControlState)state
什么状态时用什么背景图片,iOS 6新增
- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state
最好图片是可伸缩的 iOS
6新增
- (UIImage *)decrementImageForState:(UIControlState)state
iOS 6新增
- (void)setDecrementImage:(UIImage *)image forState:(UIControlState)state
iOS 6新增
减号按钮的图片
- (UIImage *)incrementImageForState:(UIControlState)state
iOS 6新增
- (void)setIncrementImage:(UIImage *)image forState:(UIControlState)state
iOS 6新增
加号按钮的图片
- (UIImage *)dividerImageForLeftSegmentState:(UIControlState)leftState rightSegmentState:(UIControlState)rightState
leftState是左边的那个按钮的状态,rightState是右边那个按钮的状态
两个按钮不同状态时换控件图片,iOS 6新增
- (void)setDividerImage:(UIImage *)image forLeftSegmentState:(UIControlState)leftState rightSegmentState:(UIControlState)rightState
PS:通过左右按钮的状态设置分割线的图片
eg:
UIStepper *stepper = [[UIStepper alloc]init];
stepper.minimumValue=2;
stepper.maximumValue=5;
stepper.stepValue=2;
stepper.value=3;
stepper.center= CGPointMake(160,240);
[stepper addTarget:self action:@selector(valueChanged:)forControlEvents:UIControlEventValueChanged];
[self addSubview:stepper];
注意:上面我设置stepValue是2,当前value是3,最小值是2。但如果我们点击“-”,这是value会变成2,而不是1。即每次改变都是value±stepValue,然后将最终的值限制在[minimumValue,maximumValue]区间内。
另外还有几个控制属性:
continuous 控制是否持续触发UIControlEventValueChanged事件。默认YES,即当按住时每次值改变都触发一次UIControlEventValueChanged事件,否则只有在释放按钮时触发UIControlEventValueChanged事件。
autorepeat 控制是否在按住是自动持续递增或递减。默认YES。
wraps 控制值是否在[minimumValue,maximumValue]区间内循环。默认NO。
这几个控制属性只有在特殊情况下使用,一般使用默认值即可
PS:通过左右按钮的状态设置分割线的图片
属性和方法
continuous属性
BOOL类型,默认YES,YES时表示当用户交互时会立刻发送ValueChange事件,NO则是只有等用户交互结束时才发送ValueChange事件
PS:若设置为YES,则长按会连续触发变化,若设置为NO,只有在按击结束后,才会触发。
autorepeat属性
BOOL类型,默认YES,YES时表示按住加号或减号不松手,数字会持续变化
PS:若设置为YES,则长按值会一直改变,若设置为NO,则一次点击只会改变一次值
wraps属性 BOOL类型,默认NO,YES时当value加的超过maximumValue,value将变成minimumValue的值,当减的比minimumValue还小,则value变成maximum的值。如果设成NO,这value不会超过最大和最小值
PS:设置控制器的值是否循环(到达边界后,重头开始,默认为NO)
minimumValue属性 Double型 默认为0,最小值,当设置值大于或等于maximumValue时会报一个NSInvalidArgumentException异常
maximumValue属性 Double型 默认为100,是Stepper的最大值,当设置小于或等于minimumValue时会报一个
NSInvalidArgumentException异常
stepValue属性
Double型 默认为1,Stepper的增量或者步数(例如stepValue 是10,则点一下加就加10,减也是减10),必须大于0,否则会报一个
NSInvalidArgumentException异常
访问 Stepper的值
value属性 Double型
默认是0,上限是maximumValue 下限是minimumValue,当数值改变时,会发送UIControlValueEventChanged给目标
定制化外观
tintColor属性 UIColor型,默认是nil,iOS
6新增
- (UIImage *)backgroundImageForState:(UIControlState)state
什么状态时用什么背景图片,iOS 6新增
UIControlState 有六个枚举变量
enum {
UIControlStateNormal = 0, 正常情况 UIControlStateHighlighted = 1 << 0, 在作用域内点击但是没有松手 UIControlStateDisabled = 1 << 1, 禁止使用时 UIControlStateSelected = 1 << 2, 点击且松手一般是按钮按下且凹陷的状态 UIControlStateApplication = 0x00FF0000,额外的状态当应用程序使用时 UIControlStateReserved = 0xFF000000 内部框架使用 };
- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state
最好图片是可伸缩的 iOS
6新增
- (UIImage *)decrementImageForState:(UIControlState)state
iOS 6新增
- (void)setDecrementImage:(UIImage *)image forState:(UIControlState)state
iOS 6新增
减号按钮的图片
- (UIImage *)incrementImageForState:(UIControlState)state
iOS 6新增
- (void)setIncrementImage:(UIImage *)image forState:(UIControlState)state
iOS 6新增
加号按钮的图片
- (UIImage *)dividerImageForLeftSegmentState:(UIControlState)leftState rightSegmentState:(UIControlState)rightState
leftState是左边的那个按钮的状态,rightState是右边那个按钮的状态
两个按钮不同状态时换控件图片,iOS 6新增
- (void)setDividerImage:(UIImage *)image forLeftSegmentState:(UIControlState)leftState rightSegmentState:(UIControlState)rightState
PS:通过左右按钮的状态设置分割线的图片
eg:
UIStepper *stepper = [[UIStepper alloc]init];
stepper.minimumValue=2;
stepper.maximumValue=5;
stepper.stepValue=2;
stepper.value=3;
stepper.center= CGPointMake(160,240);
[stepper addTarget:self action:@selector(valueChanged:)forControlEvents:UIControlEventValueChanged];
[self addSubview:stepper];
注意:上面我设置stepValue是2,当前value是3,最小值是2。但如果我们点击“-”,这是value会变成2,而不是1。即每次改变都是value±stepValue,然后将最终的值限制在[minimumValue,maximumValue]区间内。
另外还有几个控制属性:
continuous 控制是否持续触发UIControlEventValueChanged事件。默认YES,即当按住时每次值改变都触发一次UIControlEventValueChanged事件,否则只有在释放按钮时触发UIControlEventValueChanged事件。
autorepeat 控制是否在按住是自动持续递增或递减。默认YES。
wraps 控制值是否在[minimumValue,maximumValue]区间内循环。默认NO。
这几个控制属性只有在特殊情况下使用,一般使用默认值即可
PS:通过左右按钮的状态设置分割线的图片
相关文章推荐
- iOS UIScrollView的使用
- UE4 ‘Unrecognized type 'TMap'’问题
- iOS学习之—— UICollectionViewFlowLayout
- AndroidStudio导入项目一直卡在Building gradle project info最快速解决方案
- 一套完整的前台页面增删改查以及js(easyui)
- 01.手把手教你 .Net EasyUI DataGrid(创建数据表格)
- ElasticSearch : IN equivalent operator in ElasticSearch
- easyui 在日期不满足要求的情况下,让修改链接不可点,或者修改消失
- 键盘只能输入数字(或其它特定的规定字符)
- UITableView不掉用tableView: cellForRowAtIndexPath方法
- 高质量的UI组件下载地址暂存
- Android中用到UI控件
- Java字符串处理String、StringBuilder、StringBuffer类效率分析
- OncePerRequestFilter的作用
- RESTFUL提示java.lang.NoSuchMethodException: Could not find a suitable constructor in
- JAXB - Annotations, Annotations for Enums: XmlEnum, XmlEnumValue
- ./configure: error: SSL modules require the OpenSSL library.
- [Leetcode刷题总结系列][Dynamic Programming]63. Unique Paths II
- hdoj-3530-Subsequence
- CRM开发要点(四)