一、UISlide ——滑块控件
作用:允许用户使用手指拖动滑块,产生数值变化的控件
属性:
minimumValue:滑块的最小数值
maximumValue:滑块的最大数值
value:滑块的当前数值
需要注意的时:滑块没有步长,滑块数值通常是连续变化的,这样可以保证滑块动画的连续性,因此,我们在使用滑块时,需要格外留意是否有重复刷新的情况,例如照片查看器示例程序
Action: valueChanged
- minimumValue : 当值可以改变时,滑块可以滑动到最小位置的值,默认为0.0
_slider.minimumValue = 10.0;
- maximumValue : 当值可以改变时,滑块可以滑动到最大位置的值,默认为1.0
_slider.maximumValue = 100.0;
- continuous : 如果设置YES,在拖动滑块的任何时候,滑块的值都会改变。默认设置为YES
[_slider setContinuous:NO]; // 在滑块滑动结束时才获取滑块的值
- minimumValueImage : 滑块条最小值处设置的图片,默认为nil
_slider.minimumValueImage = [UIImage imageNamed:@"003.png"];
- maximumValueImage,滑块条最大值处设置的图片,默认为nil
_slider.maximumValueImage = [UIImage imageNamed:@"002.png"];
6.minimumTrackTintColor : 小于滑块当前值滑块条的颜色,默认为蓝色
_slider.minimumTrackTintColor = [UIColor redColor];
7.maximumTrackTintColor: 大于滑块当前值滑块条的颜色,默认为白色
_slider.maximumTrackTintColor = [UIColor greenColor];
8.thumbTintColor : 当前滑块的颜色,默认为白色
_slider.thumbTintColor = [UIColor yellowColor];
9.currentMaximumTrackImage : 滑块条最大值处设置的图片
10.currentMinimumTrackImage : 滑块条最小值处设置的图片
11.currentThumbImage: 当前滑块的图片
二、UISwitch——开关控件
作用:设置某一个属性开或者关的状态
属性:
state属性:on/off
使用isOn可以判断开关当前是否打开
Action: valueChanged
1. onTintColor
处于on时switch 的颜色
switchImage.onTintColor = [UIColor grayColor];
2.tintColor
处于off时switch 的颜色
switchImage.tintColor = [UIColor greenColor];
3.onImage
设置on 的图标
switchImage.onImage = [UIImage imageNamed:@"1.png"];
4. offImage 设置off的图标
switchImage.offImage = [UIImage imageNamed:@"4.png"];
5. on
设置switch的开关
swithImage.on = YES;
6.thumbTintColor
设置拇指颜色
swithImage.thumbTintColor = [UIColor redColor];
效果:
7.增加事件响应机制
监听的是这个事件:UIControlEventValueChanged,值改变事件
[switchImage addTarget:self
action:@selector(switchOn)
forControlEvents:UIControlEventValueChanged];
三、UIView
作用:
- 是一个容器,可以容纳任何的控件或者视图
- 所有的控件,最终均继承自UIView
属性:
1.继承类属性:
superView:每一个UIView最多只能有一个父视图,注意:UIViewController的根视图没有父视图。
subViews:当前视图所包含的子视图/控件
2.位置大小类属性
frame:设置视图的边框
bounds:设置视图的边界,用于指定视图的大小,常用于视图的子控件设置位置,因为bounds属性的原点,永远是(0,0)
center:设置视图的中心点位置,通常用于指定视图的位置,在视图动画中比较常用
注意:
frame和center可以指定UIView的位置
frame和bounds可以指定UIView的大小
3.形变属性
transform:可以指定视图的平移、旋转和缩放属性
- CGAffineTransformRotate、CGAffineTransformScale、CGAffineTransformTranslation三个函数用于基于UIView当前的形变属性继续变形
- CGAffineTransformMakeRotate、CGAffineTransformMakeScale、CGAffineTransformMakeTranslation三个函数用于基于UIView初始的形变进行变形
动画:
UIView封装了三个块代码动画:
- [UIView animateWithDuration:animations:]
- [UIView animateWithDuration:animations:completion:]
- [UIView animateWithDuration: delay: options: animations: completion:]
1.alpha
设置视图的透明度.默认为1.
// 完全透明
view.alpha = 0;
// 不透明
view.alpha = 1;
2.clipsToBounds
// 默认是NO,当设置为yes时,超出当前视图的尺寸的内容和子视图不会显示。
view.clipsToBounds = YES;
3.hidden
// 默认是NO,当设置为yes,视图就看不见了。
view.hidden = YES;
4.userInteractionEnabled
// 默认为YES,如果设置为No,view就不能和用户交互了。(即不能响应事件)
view.userInteractionEnabled = NO;
5. tag
// 默认为0,用来标记视图的
view.tag = 0;
6. exclusiveTouch
默认为No
exclusiveTouch的意义在于:如果当前设置了exclusiveTouch的UIView是整个触摸事件的第一响应者,那么到你所有的手指离开屏幕前其他的UIView是无法接受到整个事件周期内所有的触摸事件。
7.CGRect frame
1> 表示控件的位置和尺寸(以父控件的左上角为坐标原点(0, 0))
2> 修改这个属性,可以调整控件的位置和尺寸
8.CGPoint center
1> 表示控件的中点(以父控件的左上角为坐标原点)
2> 修改这个属性,可以调整控件的位置
9.CGRect bounds
1> 表示控件的位置和尺寸(以自己的左上角位坐标原点,位置永远是(0, 0))
2> 修改这个属性,只能调整控件的尺寸
10.CGAffineTransform transform
1> 表示控件的形变状态(旋转角度、缩放比例)
2> 创建CGAffineTransform的函数
创建一个x、y方向的缩放比例分别为sx、sy的形变值
* CGAffineTransformMakeScale(CGFloat sx, CGFloat sy)
创建一个旋转角度为angle的形变值
* CGAffineTransformMakeRotation(CGFloat angle)
在形变值t的基础上,再进行缩放,x、y方向的缩放比例分别为sx、sy,然后返回一个新的形变值
* CGAffineTransformScale(CGAffineTransform t, CGFloat sx, CGFloat sy)
在形变值t的基础上,再进行旋转,旋转角度为angle,然后返回一个新的形变值
* CGAffineTransformRotate(CGAffineTransform t, CGFloat angle)11.superview
返回当前视图的父视图。(只读)
12.window
返回当前视图的窗口。(窗口)
获取根视图的superview和window时,需要注意,在viewdidload中是获取不到的,viewdidload只是视图加载完成,并没有添加到窗口中,因此需要在viewDidAppear方法中才能获取到。那时候视图才被添加到窗口中。
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"%@",self.view.superview); // 没有值
NSLog(@"%@", self.view.window); // 没有值
}
- (void)viewDidAppear:(BOOL)animated
{
NSLog(@"%@",self.view.superview); // 有值
NSLog(@"%@", self.view.window); // 有值
}
13.autoresizesSubviews
默认为YES,表示当父视图尺寸改变时,子视图也会随着改变。
14.autoresizingMask
默认为UIViewAutoresizingNone,不会自动伸缩。
15.contentMode
设置内容模式。
UIViewContentModeScaleToFill
不按照原宽高比例(长和宽不等比例增长)以任意比例填充。这样视图不会有空白,且内容可以全部显示。
UIViewContentModeAspectToFill
按照原长宽比例填充,不完全显示全部内容。这样内容可能溢出,但整个视图不会留有空白。
UIViewContentModeAspectToFit
按照原长宽比例(长和宽等比例增长),完全显示全部内容。这样容易照成左右或者上下留有空白。
16.backgroundColor
默认是nil。
// 设置背景颜色为红色
self.view.backgroundColor = [UIColor redColor];
17.UIView常用添加子视图方法
- //加一个视图到一个视图里面 addSubview:
- //将一个视图移到前面 bringSubviewToFront:
- //将一个视图推送到背后 sendSubviewToBack:
- //把视图移除 removeFromSuperview
- //插入视图 并指定索引 insertSubview:atIndex:
- //插入视图在某个视图之上 insertSubview:aboveSubview:
- //插入视图在某个视图之下 insertSubview:belowSubview:
- //交换两个位置索引的视图 exchangeSubviewAtIndex:withSubviewAtIndex: