一 delegate
delegate,中文名字代理,委托 顾名思义,就是委托他人帮自己去做什么事。也就是当自己做什么事情不方便的时候,就设置一个代理(委托人),这样就可以让代理去帮自己去实现什么方法。
大致上,代理(委托)的作用大致如下:
1.所谓传事件就是a类发生了什么事,把这件事告诉关注自己的人,也就是委托的对象,由委托的对象去考虑发生这个事件后应该做出什么反映。 (UITextFiled的键盘回收 还有我们完成的触摸事件,改变颜色,大小位置)
2.所谓传值经常用在b类要把自己的一个数据或者对象传给a类,让a类去展示或者处理。(今天会讲到)
3.利用委托赋值,这种方法感觉是为了不暴露自己的属性就可以给自己复值,而且这样更方便了类的管理,只有在你想要让别人给你赋值的时候才调用,这样的赋值更可控一些. (UITableView的时候我们也会遇到)
二 UIControl 控件太多 掌握不熟练
UIControl 控件的核心方法
添加事件
addTarget:action:forControlEvents:
移除事件
removeTarget:action:forControlEvents:
- UIButton
设置title
setTitle:forState:
设置前景图片
setImage:forState:
设置背景图片
setBackgroundImage:forState:
2.UISegementedControl
设置分段
initWithItems:
设置点击的颜色
tintColor
设置选中分段
selectedSegmentIndex
修改分段显示内容
setTitle:forSegmentAtIndex:
3.UISlider
设置最小值
minimumValue
设置最大值
maximumValue
设置滑块划过区域颜色
minimumTrackTintColor
设置滑块未划过区域的颜色
maximumTrackTintColor
当前值
value
UIStepper
设置最小值
minimumValue
设置最大值
maximumValue
每次改变的量
stepValue
当前值
value
UISwitch
设置状态
on
UIPageControl
设置当前点的个数
numberOfPages
设置当前点的颜色
currentPageIndicatorTintColor
设置其他点的颜色
pageIndicatorTintColor
设置当前点的位置
currentPage
(解耦)
1.target - action设计模式
a.声明两个实例变量(_target _action)
b.使用方法(addTarget: action:)接收外部方法执行者 和 方法
c.让执行者_target 执行方法_action
[_target performSelector:@selector:_Action withObject:self];
2.delegate 设计模式
a.声明协议
b.声明服从协议的代理
c.当touchesBegan时让代理执行协议中的方法
3.UIImageView
a.创建对象
(1)initWithFrame:
(2)initWithImage:
b.配置属性
image
c.添加父视图
addSubView:
d.释放所有权
release
三 七大手势 和 transform
//轻拍
UITapGestureRecognizer
//轻扫
UISwipeGestureRecognizer
//平移
UIPanGestureRecognizer
(CGAffineTransformTranslate)
//长按
UILongPressGestureRecognizer
//捏合
UIPinchGestureRecognizer
(CGAffineTransformScale)
//旋转
UIRotationGestureRcognizer
(CGAffineTransformRotate)
UIScreenEdgePanGestureRecognizer
四 UIScrollView 和 UIPageControl
UIScrollview主要专长于两个方面: 滚动 和 缩放
滚动:
定义内容区域大小,决定是否能够滑动
contentSize
视图左上角距离坐标原点的偏移量
contentOffset
是否整屏翻动
pagingEnabled
滑动到顶部(点状态条的时候)
scrollsToTop
边界是否回弹
bounces
是否能够滚动
scrollEnabled
控制是否显示水平方向的滚动条
showsHorizontalScrollIndicator
控制是否显示垂直方向的滚动条
showVerticalScrollIndicator
缩放:
缩小的最小比例
minimumZoomScale
放大的最大比例
maximumZoomScale
设置变化比例
zoomScale
控制缩放的时候是否会反弹
bouncesZoom
要实现缩放,还需要实现delegate,指定缩放的视图是谁。
协议:
//滚动
只要scrollView 滚动就触发
- (void)scrollViewDidScroll:(UIScrollView *)scrollView;
开始拖拽时 触发
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
已经结束拖拽 触发
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
开始减速 触发
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
已经结束减速 (停止)
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
//缩放
//完成缩放 触发
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale
//设置缩放子视图
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
// 响应者链 : 由多个响应者组成的链状结构
// 对于响应 有两个过程,响应事件查询过程 和 响应事件的处理过程.
// 查询过程:硬件设备 --> AppLication --> window --> 视图控制器 --> View --> 视图的各个子视图 最终找到被触摸的子视图
// 处理过程 : 被触摸的视图 --> 各个父视图 --> view --> 视图控制器 --> window --> Application --> ....遗失
UITextField
1.文字显示
text
textColor
font
textAlignment
placeholder
2.输入的设置
enable 允许输入
KeyBoardType 键盘风格
returnKeyType return类型风格
clearOnBeginInEditTing 输入时是否清除
secureEntry 加密
3.外观风格
boardStyle
leftView
rightView
cleanButtonMode 清除按钮
键盘回收
delegate
UIButton
1.事件
addTarget:action:forControlEvents:{
}
2.文字
setTitle:forState:
setTitleColor:forState:
取文字
titleColorFortState:
titleForState:
3.图片
setImage:forState:
imageForState:
setBackgroundImage:forState:
创建UI控件需要4部
1.创建对象
2.配置属性
frame : 在父视图坐标系中,描述视图大小和位置
center:在父视图中坐标系中,中心点的位置
bounds:在自身坐标系中,中心点的位置
backgroundColor背景色
hidden 显隐性
alpha 透明度
tag 设置标识量
subViews 子视图
superView 父视图
UILabel的属性
text 显示文字
textColor 文字的颜色
textAlignment 对齐方式
numberOfLines 设置行数
shadowColor 阴影颜色
shadowOffSet 阴影大小
font 字体
3.添加父视图(视图层级
addSubView:
insertSubView:atIndex;
insertSubView:belowSubView:)
4.释放所有权
// 管理视图层级(
bringSubViewToFront
sendSubViewToBack
exchangeSubViewAtIndex: withSubViewAtIndex:
)
// 以图片形式管理view背景颜色的方法
ui3.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"3.jpeg"]];
// LabelAndTextField
1.事件
a.触摸事件
b.晃动事件
c.远程操控事件
2.触摸
a.实现的方法
touchesBegan:withEvent:
touchesMoved:withEvent:
touchesEnded:withEvent:
touchesCancelled:withEvent:
// forZoomingView 传回第一个子视图
return scrollView.subviews.firstObject;
return scrollView.subviews.object[0];
// forZoomingView 传回最后一个子视图
return scrollView.subviews.lastObject;
网友评论