iOS开发-随笔
浩羽科技
生命不息,运动不止。
展开
-
详解开源项目:MMPopupView(弹出框组件)
开源项目:MMPopupView前言弹出框组件应该是绝大多数应用都少不了的(只有极少数精心设计的APP会用不到) 当然我们的APP也不例外 之前我们APP的弹出框组件是我用pop写的 可是后来发现与系统原生动画有些冲突(pop内部用到了CATransaction 导致跟系统动画同时发生时会有问题) 所以上周花了大半天时间重写了一下MMPopupView这个组件因翻译 2015-09-29 14:28:51 · 2466 阅读 · 0 评论 -
iOS开发:git命令返回任意一个版本的方法
git回退某一个版本的方法:一:记录回退的hash值首先要查看你要回退到哪一个版本方法1:git log会展示最新的提交记录,然后你按着键盘的“向下”键,看更多的提交记录,记住你要回退的哪一个版本的hash值方法2:git reflog会展示最近操作的记录,然后你记住要回退的hash值二:执行回退命令翻译 2015-07-14 14:43:11 · 295 阅读 · 0 评论 -
NSMutableURLRequest和NSURLConnection用Post方式上传照片
需求:上传一张照片和内容,内容包括:用户编辑的内容、经纬度、地点等等,就是类似发一个说说。这就是一个很平常的功能,实现的方式想必各位能想到很多。接下来我想用系统的NSURLConnection来实现这个功能:首先我们要定义一个全局变量:/** * 请求返回数据 */@property (nonatomic, strong) NSMutableData *mRespons翻译 2015-07-14 15:05:37 · 451 阅读 · 0 评论 -
iOS 7中实现模糊效果教程
iOS 7在视觉方面有许多改变,其中非常吸引人的功能之一就是在整个系统中巧妙的使用了模糊效果。许多第三方应用程序已经采用了这样的设计细节,并以各种奇妙的和具有创造性的方式使用它。本文将通过几种不同的技术来实现iOS 7中的模糊效果,当然,这一切都利用了一个名为GPUImage的框架。GPUImage是由Brad Larson创建的,它利用GPU,使在图片和视频上应用不同的效果和滤镜翻译 2015-07-14 15:38:48 · 1149 阅读 · 0 评论 -
iOS开发中的gcd多线程tips
本篇文章会持续更新:我们经常用到的:dispatch_async(dispatch_get_global_queue(0, 0), ^{ // 处理耗时操作的代码块 //通知主线程刷新 dispatch_async(dispatch_get_main_queue(), ^{ //回调或者说是通知主线程刷新翻译 2015-07-14 15:40:52 · 260 阅读 · 0 评论 -
iOS开发之UISearchBar初探
UISearchBar也是iOS开发常用控件之一,点进去看看里面的属性barStyle、text、placeholder等等。但是这些属性显然不足矣满足我们的开发需求。比如:修改placeholder的颜色、修改UISearchBar上面的UITextfield的背景颜色、修改UITextfield上面的照片等等。为了实现上述的需求,最好写一个UISearchBar的子类就叫LSSearc翻译 2015-07-14 15:57:25 · 227 阅读 · 0 评论 -
解决MWPhotoBrowser中的SDWebImage加载大图导致的内存警告问题(刚刚)
MWPhotoBrowser是一个非常不错的照片浏览器,在github的star接近3000个,MWPhotoBrowser下载MWPhotoBrowser来加载小图1M以下的都应该不会有内存警告的问题。如果遇到大图,3M、4M、5M的大图,很有可能导致内存警告。最近我就遇到这个问题,很是头疼。来回滑动查看照片内存飙到100M以上:网上查了很多资料,都没有解决问题。翻译 2015-07-28 11:02:24 · 349 阅读 · 0 评论 -
iOS开发下载文件速度计算(刚刚)
当我们写下载界面的时候,需要向用户展示每秒下载多少KB,这个时候就需要计算速度。如下:我用的是AFNetworking来做下载的,我们拿AFHTTPRequestOperation来举列,AFHTTPRequestOperation中有个方法:- (void)setDownloadProgressBlock:(void (^)(NSUInteger bytesRead, lon翻译 2015-07-28 11:03:58 · 698 阅读 · 0 评论 -
系统提供的dispatch方法(刚刚)
为了方便地使用GCD,苹果提供了一些方法方便我们将block放在主线程或后台线程执行,或者延后执行。使用的例子如下所示: // 后台执行: dispatch_async(dispatch_get_global_queue(0, 0), ^{ // something }); // 主线程执行: dispatch_async(dispatch_get_main_queue翻译 2015-07-28 11:08:30 · 1517 阅读 · 0 评论 -
单例模式的两种写法(刚刚)
单例模式是iOS开发中最常用的设计模式,iOS的单例模式有两种官方写法,如下:1,常用写法#import "LGManagerCenter.h"static LGManagerCenter *managerCenter;@implementation LGManagerCenter+(LGManagerCenter *)sharedManager{ if(!mana翻译 2015-07-28 11:12:15 · 320 阅读 · 0 评论 -
自己动手实现一个队列LGQueue(刚刚)
iOS系统没有提供queue容器,如果想用,需要手动自己来写一个:.h//// LGQueue.h// AntsSportApp//// Created by ligang on 15/3/24.// Copyright (c) 2015年 ligang. All rights reserved.//#import @interface LGQueue :翻译 2015-07-28 11:14:03 · 305 阅读 · 0 评论 -
NSSortDescriptor排序(刚刚)
NSSortDescriptor可以实现按照对象的属性进行排序。比如我们有一个对象(LGPeople)。LGPeople有两个属性分别是名字(name)和年龄(age)。现在我们要按照LGPeople的年龄(age)来进行排序。代码如下: //按年龄排序 NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc翻译 2015-07-28 11:17:49 · 283 阅读 · 0 评论 -
iOS开发之AsyncSocket使用教程(刚刚)
用socket可以实现像QQ那样发送即时消息的功能。客户端和服务端需要建立长连接,在长连接的情况下,发送消息。客户端可以发送心跳包来检测长连接。在iOS开发中使用socket,一般都是用第三方库AsyncSocket,不得不承认这个库确实很强大。下载地址CocoaAsyncSocket。使用AsyncSocket的时候可以做一层封装,根据需求提供几个接口出来。比如:连接、断开连翻译 2015-07-28 11:21:43 · 312 阅读 · 0 评论 -
MVC中Model的设计(刚刚)
一般在定义ViewController的时候,都习惯定义一个BaseViewController作为基类(即父类)。这样做的好处是:把公共的属性提出来放在BaseViewController中,试代码结构更清晰。同样,设计Model的时候,也可以定义一个基类。比如:有一个房子,房子里面有一个电视和许多个桌子。电视和桌子分别有价格和型号。定义基类LGObjectLGObjec翻译 2015-07-28 11:27:58 · 526 阅读 · 0 评论 -
hitTest和pointInside如何响应用户点击事件(刚刚)
处理机制iOS事件处理,首先应该是找到能处理点击事件的视图,然后在找到的这个视图里处理这个点击事件。处理原理如下:• 当用户点击屏幕时,会产生一个触摸事件,系统会将该事件加入到一个由UIApplication管理的事件队列中• UIApplication会从事件队列中取出最前面的事件进行分发以便处理,通常,先发送事件给应用程序的主窗口(UIWindow)•翻译 2015-07-28 12:31:44 · 449 阅读 · 0 评论 -
iOS调用系统发短信功能详解(刚刚)
iOS调用系统的发短信功能可以分为两种:1,程序外调用系统发短信。2,程序内调用系统发短信。第二种的好处是用户发短信之后还可以回到app。这对app来说非常重要。程序外调用系统发短信这个方法其实很简单,直接调用openURL即可:[[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"sms://1388翻译 2015-07-28 13:39:31 · 439 阅读 · 0 评论 -
iOS地图定位使用几个小功能(刚刚)
iOS系统自带的定位服务可以实现很多需求。比如:获取当前经纬度,获取当前位置信息等等。获取当前经纬度首先导入#import ,定义CLLocationManager的实例,实现CLLocationManagerDelegate。@interface ViewController (){ CLLocationManager *_locationManager;}@翻译 2015-07-28 14:06:05 · 566 阅读 · 0 评论 -
iOS协议里面可以定义成员变量和属性吗?(刚刚)
在CSDN上看到有人提的问题,觉得很有价值,先看代码:@protocol CAMediaTiming/* The begin time of the object, in relation to its parent object, if * applicable. Defaults to 0. */@property CFTimeInterval beginTime;/* Th翻译 2015-07-28 14:27:03 · 5885 阅读 · 0 评论 -
iOS开发:git创建仓库
从 Git 中移除某个文件rm test.txtgit rm test.txt添加远程仓库$ git remote origin $ git remote add pb git://github.com/paulboone/ticgit.git $ git remote -v origin git://github.com/schacon/ticgit.git pb gi翻译 2015-07-14 14:41:46 · 256 阅读 · 0 评论 -
中文 iOS/Mac 开发博客列表
本博客列表会不断更新维护,如果有推荐的博客,请直接在本文下面评论。(排名不分先后)OneV’s Den嗨,我是王巍 (@onevcat),一名来自中国的 iOS / Unity 开发者。现居日本,就职于 LINE。正在修行,探求创意之源。 Swifter.tips - 我维护的 Swift 使用技巧分享网站,每周三更新,欢迎访问刚刚在线Blo翻译 2015-07-14 12:25:59 · 456 阅读 · 0 评论 -
iOS开发中git分支创建和管理
创建分支$ git branch testing切换到testing分支$ git checkout testing查看本地分支$ git branch查看远程分支$ git branch -a删除本地分支$ git branch -D testing提交本地分支到远程1,切换到要提交的分支$ git checkou翻译 2015-07-14 14:39:35 · 1006 阅读 · 0 评论 -
如何删除xcode项目中不再使用的图片资源
由于随着项目不但的版本迭代开发,资源也不断的替换,如果没有养成一个好的使用习惯,时间久了,自然就产生了好多的无用的图片资源,下面就两种方法帮你定位到无用的图片1. 利用工具 下载地址 http://jeffhodnett.github.io/Unused/ 运行效果如下 2. 通过终端 执行 shell 命令a. 第一步建立.sh 文件 如 unu转载 2015-12-29 11:05:08 · 433 阅读 · 0 评论 -
蓝鸥苹果iOS开发者博客
中国高端iOS(iPhone/iPad)开发培训专家与领导者(iOS开发者交流群247380185)链接:http://www.lanou3g.com/blog/点击打开链接原创 2015-07-10 13:01:10 · 259 阅读 · 0 评论 -
谷歌地址
谷歌地址http://www.opengg.cn点击打开链接原创 2015-07-10 13:56:59 · 414 阅读 · 0 评论 -
JSON在线解析工具
http://json.phpddt.com 点击打开链接原创 2015-07-10 14:16:47 · 1289 阅读 · 0 评论 -
梦维-iOS学习网站-很牛
链接地址http://www.dreamingwish.com点击打开链接原创 2015-07-10 15:38:13 · 291 阅读 · 0 评论 -
EGOCache缓存框架详细讲解
EGOCache是一个轻量级的缓存框架。用法简单方便,在现在的项目中,我就用到EGOCache来缓存下载过的照片和字符串。有人可能会问到,缓存照片还需要用EGOCache吗?AFNetworking和SDWebImage不是已经有这些功能了吗?是的,不过AFNetworking和SDWebImage是http。我的项目用的是socket,所以我选择EGOCache来做缓存。用下来觉翻译 2015-07-14 10:08:17 · 269 阅读 · 0 评论 -
EGOCache如何检测缓存时间过期
子曰:学而不思则罔,思而不学则殆。在上一篇文章中:EGOCache缓存框架详细讲解 提到EGOCache可以设定缓存过期时间,默认是1天。查看了一下EGOCache源码,设置默认时间: [self setDefaultTimeoutInterval:86400]; //86400 = 24 * 60 * 60 刚好是一天时间。EGOCache为什么要提供设定翻译 2015-07-14 10:10:33 · 408 阅读 · 0 评论 -
iOS常用的第三方库以及XCode插件集锦
前言第三方库是现在的程序员离不开的东西 不光是APP开发 基本上所有的商业项目 都会或多或少的使用到第三方库Github上Star>100的开源库数量如下可以看到JS以绝对的优势排名第一 一定程度上也说明了JS在这几年为什么发展得这么迅速 不会点JS都不好意思说自己是码农 不过现在JS圈的造轮子浪潮也是愈演愈烈了 自己不写个框架都不好翻译 2015-07-14 10:22:13 · 831 阅读 · 0 评论 -
NSLocale的重要性和用法简介
开发一个APP不是那么容易的一件事,有很多坑等着你去踩。今天我们就抛出一个格式化时间的坑。NSDateFormatter格式化时间之前的文章,讲到过:NSDate和NSString相互转换。里面提到过如何讲NSDate转化成NSString。代码如下://获取系统当前时间NSDate *currentDate = [NSDate date];//用于格式化NSDate对象翻译 2015-07-14 10:36:24 · 860 阅读 · 0 评论 -
iOS开发之NSTimer使用初探
这个周日,我的大学同学结婚。他们的婚礼选在郑州举办。他不是郑州的,他女朋友也不是郑州的。但是他们是在郑州相识相爱,最终走到一起的,所以他们选择在郑州举办婚礼。这几年大家都在各自忙碌着,很少有见面的机会。不过经常会电话联系,相互了解一下情况。作为兄弟,我打心底为他们高兴,为他们祝福。我也会到现场参加,估计现在我已经坐上开发郑州的动车了。我喜欢走出去的感觉,很喜欢坐车,去各个翻译 2015-07-14 10:29:36 · 454 阅读 · 0 评论 -
iOS 中的 NSTimer
来源:Why的博客前阵子在整理公司项目的时候,发现老代码在使用 NSTimer 时出现了内存泄露。然后整理了一些 NSTimer 的相关内容。比较简单,各位见笑啦。NSTimerfire我们先用 NSTimer 来做个简单的计时器,每隔5秒钟在控制台输出 Fire 。比较想当然的做法是这样的:翻译 2015-07-14 10:31:07 · 287 阅读 · 0 评论 -
iOS开发自定义时间选取器
自定义时间选取器每天都随便扯扯,回到正题。今天我们做一个时间选取器,很简单,效果如下:我们自定义一个LGDatePickerView,在LGDatePickerView里面实现。背景半透明背景是半透明的,点击的灰色背景的时候,时间选取器消失。在LGDatePickerView初始化方法里,代码如下:- (id)init{ self = [s翻译 2015-07-14 10:37:34 · 300 阅读 · 0 评论 -
iOS开发之手势识别汇总
iOS开发中手势识别有六种:轻击手势(TapGestureRecognizer),轻扫手势 (SwipeGestureRecognizer),长按手势(LongPressGestureRecognizer),拖动手势(PanGestureRecognizer),捏合手势(PinchGestureRecognizer),旋转手势(RotationGes翻译 2015-07-14 10:42:18 · 221 阅读 · 0 评论 -
iOS网络编程之AFNetworking使用
iOS网络编程之AFNetworking使用现在大家都喜欢用AFNetworking,因为有人维护。看来一下官方文档,把使用的代码简单罗列一下:首先通过CocoaPods(没用过的看这篇文章)把AFNetworking拉下来Podfileplatform :ios, '7.0'pod "AFNetworking", "~> 2.0"方法一:GET 请求A翻译 2015-07-14 10:55:25 · 264 阅读 · 0 评论 -
xcode6.1调试的时候有时参数都为nil怎么解决?
xcode6.1调试的时候有时参数都为nil怎么解决?昨天我在写代码的时候,发现xcode6.1调试的时候有时参数都为nil?曾经有朋友遇到过这个问题,我一直没当回事,昨天我也碰到了:看下图:刚创建的vc 和 nav 都为nil,这给断点调试增加了很多麻烦,难道是xcode的bug吗?群里问问大牛,不得姐,网上有查,最终找到解决方法:在Project翻译 2015-07-14 10:50:32 · 579 阅读 · 0 评论 -
浅析MVC和说媒的过程
什么是MVC?MVC 全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面 显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。图解MVC(斯坦福公开课的课件)看了上面的MVC定义和翻译 2015-07-14 12:23:38 · 360 阅读 · 0 评论 -
解读AFNetworking中Demo的MVC
Demo的下载地址:AFNetworking下载打开Demo:现实的功能,就是一个简易的微博timeline界面:项目预览:用到的第三方:AFNetworking 和 UIKit+AFNetworking功能:用户图像(先显示默认图,在加载图片),用户发的内容,下拉刷新。C层:发一个请求:(告诉M翻译 2015-07-14 12:24:52 · 337 阅读 · 0 评论 -
mac下.gitconfig配置别名alias(刚刚)
在多人协作开发时,一般用git来进行代码管理。git有一些命令如:git pull 、 git push等等,这些命令可以设置alias,也就是缩写。如:git pull 是 git pl, git push 是 git ps。可以根据个人习惯进行修改。修改别名alias步骤如下:1,进入根目录$ cd2,查看根目录下面的文件$ ls -la查看一下有没翻译 2015-07-28 14:31:20 · 515 阅读 · 0 评论 -
iOS KVO概述(刚刚)
面试中经常会被问到:什么是KVO?这个问题既然出现概率这么大,那么我们就来详细讲一讲到底什么是KVO。下次再有面试官问你的时候,你就可以娓娓道来,以彰显高逼格概述问:什么是KVO?答:KVO是Key-Value Observing的缩写。它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知翻译 2015-07-28 14:37:39 · 299 阅读 · 0 评论