swift学习笔记《5》- 实用

206 阅读3分钟

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 使用

    1. 替换已有类名: .h选中要改的类名 ---> 菜单栏选中 Edit ---> Refactor ---> Rename

    1. 替换已有类名:
    1. Xcode 修改应用的名字 找到 TARGETS 中的 Build Setting , 搜索 Product Name->双击修改