美美的iOS开发
Zafir_zzf
这个作者很懒,什么都没留下…
展开
-
项目之初:Pch文件里的配置.
在开发一个iOS项目的时候进行Pch文件的配置是必不可少的,它可以将多个类里面共用的固定的代码段以”宏”的形式在每一个类里面进行编译,譬如”获取屏幕高度宽度”,整个项目使用的”通用颜色”,结合”类扩展”使用可以大大的降低代码的冗杂度….下面放一些Pch里面必用的.#ifdef __OBJC__#import "UIView+ZZFExtension.h"#import "UIBarButtonIt原创 2016-07-29 14:34:34 · 347 阅读 · 0 评论 -
iOS:用UIWebView加载网页,退出控制器内存不减,每次加载持续增涨(内存警告)
1..如果项目不需要支持iOS7 用系统提供的更加高效的WKWebView. 2.查了资料因为Html里的js 导致的内存泄漏,每次打开一个连接就会把“WebKitCacheModelPreferenceKey”设置成1。 UIWebView 增加 - (void)webViewDidFinishLoad:(UIWebView *)webView { [[NSUserDefaults sta转载 2016-11-02 13:35:22 · 5064 阅读 · 0 评论 -
iOS :FMDB数据库操作,看这个就够了.
http://www.jianshu.com/p/54e74ce87404转载 2016-11-16 13:41:36 · 533 阅读 · 0 评论 -
iOS开发之初:根据一张gif图,返回其中每一帧的图片数组(ImageView加载gif))
在APP开发过程中能用到gif图的地方无非就是刷新和加载动画了(等用到小动画的地方).但是UIImageView是无法直接加载gif图的,ImageView提供了一个加载动画图片数组的方法..那要有很多帧.png/.jpg的图片才行…但是像我这种没有美工的开发,网上只找了一张gif图怎么办…. 为数组类别,添加一个类方法–由一张项目中的gif图的名字返回其中很多帧UIImage的数组.@inter原创 2016-11-01 10:57:16 · 5083 阅读 · 0 评论 -
iOS:与网页WebView的数据交互及网页内事件响应(WKWebView,bridge))
更加高效多功能的WKWebView替换UIWebView:http://www.envicloud.cn/pages/news/147.html http://www.jianshu.com/p/6ba2507445e4bridge: ` [WebViewJavascriptBridge enableLogging];_bridge = [WebViewJavascriptBridge brid原创 2016-10-21 11:03:37 · 710 阅读 · 0 评论 -
iOS开发项目规范..如果有人问规范是什么,间隔性看看这些
代码的整洁度上就可以看出一个程序员的实力,规范其实就是让你养成一种良好习惯的标杆,在此面前我们应该顺从。本篇我们以OC为例,统计了一些在编写程序中需要注意的事项,共有20条,当然还有更多的规范,此处只是做个示例。 原文:http://www.cocoachina.com/ios/20161026/17850.html 单页代码最好控制在800行以内,每个方法最好不要超过100行,过多建议对代码转载 2016-10-29 17:23:26 · 703 阅读 · 0 评论 -
iOS开发:高效率不用切角的生成一张圆形图片
我们经常用layer.cornerRadius 配合layer.masksToBound来把某个视图控件切成圆形 ,但是这样是一种比较低效的做法,而且一旦设置了layer.masksToBound = YES可能会影响我们其它的需求..这里记录一种放在UIImage 类别里的一种生成圆形图片的方法 `- (UIImage *)circularImage {//1.开启图片大小的上下文UIGrap原创 2016-10-17 17:26:19 · 689 阅读 · 0 评论 -
iOS网络开发:监测当前网络状态,Reachability
因为程序一启动之后就开始监测网络,所以我写到了里 首先导入,在Appdelegate里声明属性 Reachability *NetReactability; 接下来是三步. 1.reachability初始化,并监测一下APP启动时的网络状态NetReactability = [Reachability reachabilityForInternetConnection]; [self u原创 2016-09-29 10:22:33 · 368 阅读 · 0 评论 -
iOS:关于沙盒路径,缓存/视频,存储规则和使用
NSHomeDirectory() 获取到当前APP的沙盒路径.. 沙盒路径下有三个文件夹: (1) temp ->就像命名一样,存放临时文件,在APP关闭再启动后就没有了,不能放重要的东西. (2) Documents ->除非APP卸载,不然里面东西是不会丢失的,但是也不能存放大文件和下载的东西.在手机连接iTunes备份和iCould备份时会备份此文件夹里面的东西…. (3)Libra原创 2016-11-03 16:05:19 · 23793 阅读 · 0 评论 -
iOS开发小方法:根据UIColor一个颜色生成一张图片
+ (UIImage *)imageWithColor:(UIColor *)color { CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f); //宽高 1.0只要有值就够了 UIGraphicsBeginImageContext(rect.size); //在这个范围内开启一段上下文 CGContex原创 2016-09-21 17:06:49 · 5736 阅读 · 0 评论 -
iOS网络开发:多个异步网络请求结束后再进行某些操作的方法
我们经常会遇到一起请求多个网络数据的情况…有些操作是在所有的网络数据请求结束之后才可以进行的….比如说使刷新控件收回.或者某些UI控件的更新..这种情况就不能单纯的在某一条网络请求结束后的block里操作了.一涉及到异步,GCD的强大之处就体现出来了..先上代码.//信号量 dispatch_semaphore_t semaphore = dispatch_semaphore_create原创 2016-09-19 15:02:35 · 9134 阅读 · 1 评论 -
iOS-判断相册,相机,定位权限是否打开
1.判断用户是否有权限访问相册import <AssetsLibrary/AssetsLibrary.h> ALAuthorizationStatus author = [ALAssetsLibraryauthorizationStatus]; if (author == kCLAuthorizationStatusRestricted || author ==kCL转载 2016-08-30 16:44:58 · 906 阅读 · 0 评论 -
iOS : 判断两个控件是否重合.(可用于判断某一个控件是否显示在window上)
CGRectIntersectsRect(<#CGRect rect1#>, <#CGRect rect2#>)这个方法传入两个CGRect,可以判断两个控件是否重合,返回值是BOOL.如果是在同一个坐标系下的控件–具有一样的父视图..直接将两个控件的frame传入即可…. 而两个控件不在一个坐标系的时候直接传入frame,那么CGRect就会是我们不想要的东西…把他们放在一个坐标系,即先算出相对原创 2016-07-30 12:43:49 · 1446 阅读 · 0 评论 -
iOS开发之初:应该提出来的类.(网络任务管理/刷新控件/全局变量)
用在整个工程当中的变量,跟放在pch里面的宏有点类似,,不过这个是为了以后方便改吗?具体区别是什么呢?目前不知道. 一般这里面有:通用间距值/公用的URL地址…整个全局的可能改的可以放这里. New File – NSObject zzfConst.h#import <UIKit/UIKit.h>/** 通用的间距值 */UIKIT_EXTERN CGFloat const XMGMa原创 2016-07-29 21:21:12 · 332 阅读 · 0 评论 -
iOS开发之初:一些常用的类别,,类别很强大.
类别-为一个类添加额外的属性或者方法… 一般我们觉得一个类经常要用到某一个方法,或者调用关于这个类某些属性的get/set方法,,此时为了节省代码量还有日后可能的重复使用,,,就会为这个类添加类别.New file- objective c–category最常用的类别就是UIView +zzfExtension 这个类为每一个继承UIView的控件添加了快速获得其坐标尺寸以及修改坐标尺寸的方法原创 2016-07-29 21:00:02 · 370 阅读 · 0 评论 -
iOS开发之初:自定义tabBar与tabBarController
不再多述,自定义出来的好处就是一次配置,终生受用..而且方便修理..不然代码都挤在一个控制器里自己想翻也翻得麻烦..创建一个函数方法,用来添加子控制器到工具栏中,并对每个控制器的标题,图片进行配置..添加几个工具栏就有几个可选择的控制器 //这里添加的子控制器要装在自定义的NavigationController里:[self setupOneChildViewController:[[XMGNa原创 2016-07-29 17:08:41 · 437 阅读 · 0 评论 -
APP开发之初:自定义NavigationController,拦截所有push方法.
一个项目里面会用无数次导航控制器的Push方法,它们一般都有一些共性的地方需要配置.例如”返回按钮”的字体以及触发的事件,tabBar的背景色. 还有每次Push要隐藏的底部工具条…用自定义的NavigationContoller就不必重复上面的代码配置,方便日后维护修改.降低代码复写#import "XMGNavigationController.h"@interface XMGNavigat原创 2016-07-29 15:14:27 · 357 阅读 · 0 评论 -
关于super 关键字的坑
在子类SonPerson的exercise方法中打印如下三个方法值 SonPerson *son = [[SonPerson alloc]init]; [son exercise];- (void)exercise { NSLog(@"%@---%@----%@",[self description],[self description],[super description]);}原创 2017-02-13 21:29:56 · 651 阅读 · 0 评论