iOS 之UIControl及其子类

2016-03-08  本文已影响1149人  CarsonChen

一. 已学类的继承关系

Objective-C中所有类的父类为NSObject类

NSObject的子类有:NSString NSArray NSDictionary NSSet NSDate UIGestureRecognizer UIResponder等等

NSString 子类: NSMutableString

NSArray 子类: NSMutableArray

NSDictionary 子类: NSMutableDictionary

NSSet 子类: NSMutableSet

UIGestureRecognizer 子类: UITapGestureRecognizer(轻拍) UISwipeGestureRecognizer(轻扫) UILongPressGestureRecognizer(长按) UIPanGestureRecognizer(平移) UIRotationGestureRecognizer(旋转) UIPinchGestureRecognizer(捏合)

UIResponder 子类: UIView(视图) UIApplication AppDelegate UIViewController(视图控制器)

UIView 子类: UILabel(标签) UIControl(控制视图)  UIImageView UIWindow

UIControl 子类: UIButton UITextField UISlider UIDatePicker UISegmentedControl

UIViewController 子类: UIAlertController

二. UIControl初识

UIControl是具有控制功能的视图.只要跟控制相关的控件都是其子类.UIControl是个抽象类,通常使用的时候用的都是其子类.

事件响应的三种形式:基于触摸,基于值,基于编辑

UIControl的子类有:UIButton,UITextField,UISlider,UISwitch,UIDatePicker,UIPageControl,UISegmentedControl

有这几个子类创建的对象均有

添加一个事件的方法:addTarget:(id) target action:(SEL) forControlEvents:

移除一个事件的方法:removeTarget:(id)target action:(SEL) forControlEvents:

三. UISwitch的使用(开关)

UISwitch继承于UIControl通常被叫做开关.初始化方法中指定的frame是没有意义的,系统会指定控件的大小,均为默认值.

onTintColor //设置开启时的颜色

tintColor //设置开关风格颜色

thumbTintColor //设置开关按钮颜色

switch.on = YES; //设置开关默认为开启状态

四. UISlider的使用(滑块)

UISlider是iOS中的滑块控件,通常用于控制视频播放进度,控制音量等等,继承于UIControl,滑块提供了一序列的连续的值,滑块停在不同的位置,或得滑块上的值也不同.

UISlider的常用属性:

minimumValue  //设置滑块的最小值,即:滑块在最左边的时候的值

maximumValue //设置滑块的最大值,即:滑块在最右边的时候的值

value //设置滑块的当前值.

minimumTrackTintColor //滑块划过的的颜色

maximumTrackTintColor //滑块未划过的颜色

同样的可以添加addTarget action方法.

五. UIDatePicker的使用(扩展)

时间选择器,创建对象的方式与其他UIControl类的对象创建对象的方式类似.

属性:

datePickerMode时间选择器的形式.获取到的Date可以通过NSDateFormatter对象设置格式控制符控制时间格式,例如:yyyy-MM-dd年-月-日然后通过该类的实例化方法,stirngFromDate方法将date转化成为字符串.

六. UIAlertController警告对话框 (扩展)

UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Tittle" message:@"This is a tittle" preferredStyle:UIAlertControllerStyleActionSheet];

UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil];

// 对话框按钮

UIAlertAction *otherAction = [UIAlertAction actionWithTitle:@"Agree" style:UIAlertActionStyleDefault handler:nil];

// 对话框警示(按钮为红色)

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

NSLog(@"Press agree2");

}];

//添加对话框上的按钮

[alertController addAction:otherAction];

[alertController addAction:action];

[alertController addAction:cancelAction];

// 切换视图控制器

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

七. UISegmentedControl的使用

UISegmentedControl是iOS中常用的分段控件,每个segment都能点击,它相当继承了若干个button.分段控件提供一栏按钮(有时候成为按钮栏),但一个时刻只能激活一个按钮.分段控件会导致用户在屏幕上看到的内容发生变化.它们通常用在不同类别的信息之间选择,或者在切换不同的视图.

UISegmentedcontrol属性以及方法:

initWithItems: //UISegmentedControl独有的初始化方法.用来创建多个分段

selectedSegmentAtIndex //设定被选中的分段

tintColor //segment的边框颜色

addTarget方法的时候,处理事件的枚举为valueChanged方法

通常状态下,UISegmentedControl的addTarget方法实现中通过switch结合进行

防止图片被渲染

UIImage *image = [[UIImage imageNamed:imagePath] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

八. UIPageControl的使用

UIPageControl控件是与UIScrollView(滑动视图)配合显示大量数据的时候,会用来控制UIScrollView的翻页.在滚动ScrollView时可以通过PageControl中的小白点来观察当前页面的位置,也可以通过pageControl中的小白点来滚动到指定的页面.

UIPageControl的属性:

numebrOfPages 页面的个数

currentPage 选中的点

UIPageControl的addTarget action方法中使用ValueChanged.

UIPageControl的属性:

currentPageIndicatorTintColor 当前选中点的颜色

pageIndicatorTintColor 其余点的颜色

上一篇下一篇

猜你喜欢

热点阅读