title: swift学习笔记《5》- 实用 date: 2016-09-21 21:39:00 categories:
- 学习笔记
- Swift学习
tags: - Swift
1.setValue:forKeyPath
实现原理
-
setValue:forKeyPath
实现原理 -
先看有没有对应key值的set方法,如果有set方法,就会调用set方法,给对应的属性赋值
-
如果没有set方法,去查看有没有跟key值相同并且带有下划线的成员属性,如果有的话,就给带有下划线的成员属性赋值,
-
如果没有跟key 值相同并且带有下划线的成员属性,还会去找没有跟key 值相同的成员属性,如果有直接给它赋值,
-
如果没有直接报错
2. button 颜色显示系统tineColor的解决办法
-
button 颜色显示系统tine的解决办法
-
在
Assets
中设置图片的Render为Orignnal Image -
使用代码设置
imageWithRenderingMode:
UIImage *image = [UIImage imageNamed:@"aimage"]; UIImage *oriImage = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
3.导航条隐藏
- 导航条隐藏
- 导航条或者导航条上的控件设置透明度是没有效果的 self.navigationController.navigationBar.alpha = 0;
- 如果需要设置透明背景,设置导航条背景,
BackgroundImage
必须默认模式是UIBarMetricsDefafault - 当背景图片设置为nil 的时候,
ShadowImage
系统会自动生成一张半透明的图片,设置为导航条背景
4.Transform
- 使用make 是相对于最原始的位置做的形变
- 使用CGAffineTransformTranslate 是相对于上一次做形变
5.view 的任意拖拽
-
在touchMoved a 方法里,计算XY方向的偏移量,设置view的transform,
6.事件传递:
- 如果父控件不能接收触摸事件,那么子控件就不可能接收到触摸事件,
- 如何找到最合适的控件来处理事件、
- 判断自己能否接收触摸事件
- 触摸点是否在自己身上
- 从后往前便利子控件,重复前面的2个步骤
- 如果没有符合条件的子控件 ,那么就自己最适合处理
7.tableView 的缩进处理
-
取消自动调整滚动视图的间距,- VC+NAV 会自动调整tanleView的contentInset
-
如果设置了tableview的缩进,记得设置scrollIndictiorInsets;
-
navBar 相融的问题,不显示在底部,从隐藏到显示,控制animated 就是可以的
8.实现图片的,下拉放大,上推隐藏,直至隐藏渐变显示导航条
-
放大代码实现 下拉,contentOffset 是负值
-
向上移动的时候,当超过64的时候,不再移动
-
动态变化设置图片的透明度
-
根据推的长度,控制显示状态栏是黑色还是白色
-
如果不设置背景颜色,拖拽手势返回的时候,右上角会有黑色,设置导航栏的背景色是白色
9.实现图片的压缩处理圆角处理(加入线程)
-
使用
CoreGraphisc
是耗时操作,讲图片处理放在全局队列中,结果放在主线程中-(void)cz_coreImageWithSize:(CGSize)size fillColor:(UIColor*)fillColor complection:(void(^)(UIImage*image))complection;
-
具体实现如下
10.Xcode 使用
-
- 替换已有类名: .h选中要改的类名 ---> 菜单栏选中 Edit ---> Refactor ---> Rename
-
- 替换已有类名:
-
- Xcode 修改应用的名字 找到 TARGETS 中的 Build Setting , 搜索 Product Name->双击修改