iOS
文章平均质量分 56
Ant_Huizi
Ant_Huizi
展开
-
Masonry自动布局详解一:基本用法
说到iOS自动布局,有很多的解决办法。有的人使用xib/storyboard自动布局,也有人使用frame来适配。对于前者,笔者并不喜欢,也不支持。对于后者,更是麻烦,到处计算高度、宽度等,千万大量代码的冗余,对维护和开发的效率都很低。笔者在这里介绍纯代码自动布局的第三方库:Masonry。这个库使用率相当高,在全世界都有大量的开发者在使用,其star数量也是相当高的。效果图转载 2016-01-14 23:18:34 · 740 阅读 · 0 评论 -
动态计算字符串的字体大小并据此设置行间距---NSAttributedString
#pragma mark-计算字符串的字体大小并据此设置行间距+ (NSMutableAttributedString *)caculateLabelHeightWithMutableAttributedString:(NSString *)string andFontSize:(CGFloat)fontSize { NSMutableAttributedSt原创 2015-12-25 09:25:20 · 1800 阅读 · 0 评论 -
JSON在线解析的好网站、结构明了
http://www.bejson.com/jsonviewernew/要解析的数据:解析后的结果如下图所示:原创 2015-12-25 15:19:04 · 736 阅读 · 0 评论 -
宏定义的黑魔法 - 宏菜鸟起飞手册
转自OneV's Den的博客 宏定义在C系开发中可以说占有举足轻重的作用。底层框架自不必说,为了编译优化和方便,以及跨平台能力,宏被大量使用,可以说底层开发离开define将寸步难行。而在更高转自OneV's Den的博客 宏定义在C系开发中可以说占有举足轻重的作用。底层框架自不必说,为了编译优化和方便,以及跨平台能力,宏被大量使用,可以说底层开发离开define将寸转载 2015-12-25 15:26:57 · 610 阅读 · 0 评论 -
关于 @synchronized,这儿比你想知道的还要多
本文翻译自 Ryan Kaplan 的 More than you want to know about @synchronized因为原文一些内容写的不太准确,我按照我的理解做出了批注和补充。如果你已经使用 Objective-C 编写过任何并发程序,那么想必是见过 @synchronized 这货了。@synchronized 结构所做的事情跟锁(lock)类似:它防止转载 2015-12-25 22:33:15 · 481 阅读 · 0 评论 -
Objective-C中的浅拷贝和深拷贝
浅拷贝浅拷贝就是对内存地址的复制,让目标对象指针和源对象指向同一片内存空间。如:12char* str = (char*)malloc(100);char* str2 = str;浅拷贝只是对对象的简单拷贝,让几个对象共用一片内存,当内存销毁的时候,指向这片内存的几个指针需要重新定义才可转载 2015-12-25 23:34:31 · 377 阅读 · 0 评论 -
Masonry介绍与使用实践:快速上手Autolayout
前言1MagicNumber -> autoresizingMask -> autolayout以上是纯手写代码所经历的关于页面布局的三个时期在iphone1-iphone3gs时代 window的size固定为(320,480) 我们只需要简单计算一下相对位置就好了在iphone4-iphon转载 2015-12-24 16:57:13 · 312 阅读 · 0 评论 -
iOS开发系列--Objective-C之KVC、KVO
概述由于ObjC主要基于Smalltalk进行设计,因此它有很多类似于Ruby、Python的动态特性,例如动态类型、动态加载、动态绑定等。今天我们着重介绍ObjC中的键值编码(KVC)、键值监听(KVO)特性:键值编码KVC键值监听KVO键值编码KVC我们知道在C#中可以通过反射读写一个对象的属性,有时候这种方式特别方便,因为你可以利用字符串的方式去动态控制一个对象。其实转载 2015-12-23 21:40:29 · 294 阅读 · 0 评论 -
iOS开发- 相机(摄像头)获取到的图片自动旋转90度解决办法
用相机拍摄出来的照片含有EXIF信息,UIImage的imageOrientation属性指的就是EXIF中的orientation信息。如果我们忽略orientation信息,而直接对照片进行像素处理或者drawInRect等操作,得到的结果是翻转或者旋转90之后的样子。这是因为我们执行像素处理或者drawInRect等操作之后,imageOrientaion信息被删除了,imageOrie转载 2016-01-10 20:11:14 · 1042 阅读 · 0 评论 -
不要把 ViewController 变成处理 tableView 的"垃圾桶"
请支持原创, 如需转载, 请注明出处@TEASON说在前面:最近有个MVVM模式非常火热, 相信它的出现是为了模块化iOS开发, 其实在我看来,它始终还是MVC模式, 只是一个变种罢了 .(当然有人用到了响应式编程的思路颠覆了常规 , 但我们今天把讨论点集中于代码的设计模式) .与其专注于说明 MVVM 的来历,不如让我们看一个典型的 iOS 是如何构建的,并从那里转载 2015-12-24 17:05:25 · 453 阅读 · 0 评论 -
iOS 计算某个时间到现在是多少月/天/时的代码
传入一个NSString类型的日期 格式如newsDate = @"2013-08-09 17:01"; 或者newsDate = @"2013/08/09 17:01"; 返回如果有一个月,就不返回天,依次类推。 ?123456789101112转载 2015-12-24 20:19:39 · 1250 阅读 · 0 评论 -
最新ShareSdk简洁版集成注意事项(IOS)
集成过程遇到的问题工程跑不起来文件都按照官方文档拖拽进去、依赖的系统框架也都添加完毕,提示找不到引用框架。 出现此问题是因为虽然你把文件拖进去了,但工程仍找不到你引用框架所在的位置,我用的是xcode7.0测试版本,估计其他版本不会出现这个问题。解决办法如下: 找到工程中的这两项(默认是空的) 分别添加拖拽文件夹锁在的目录: Framework Sear转载 2015-12-27 20:39:34 · 528 阅读 · 0 评论 -
ShareSDK [iOS常见问题] 关于使用QQ做第三方登录的问题!
注意:QQ本身没有授权功能,所以想要使用QQ做第三方登录必须通过QQ空间来实现!第一步:集成ShareSDK(步骤同集成分享的一样,如果已经集成过就不用再重新集成了),这里需要注意的是,由于是要通过QQ空间来实现授权登录,所以在下载ShareSDK包的时候别忘了勾选QQ空间,不然会报尚未导入平台(6)的错误。第二步:打开工程中的*AppDelegate.m(*代表你的工程名字) 文转载 2015-12-27 20:43:56 · 1915 阅读 · 0 评论 -
Masonry自动计算cell行高:HYBMasonryAutoCellHeight
前言还在手动计算UITableViewCell的行高吗?还在每次都因为需求变化一点就要大量调整cell的高度而烦恼吗?现在教大家如何通过Masonry的自动布局来实现自动计算cell的行高!!!在github没有找到基于Masonry自动计算行高的库,倒是找到了使用xib/storyboard在添加约束来自动计算行高的库,如: UITableView-FDTemplateLay转载 2016-01-14 23:17:25 · 3188 阅读 · 0 评论 -
iOS多线程之GCD学习
iOS实现提供实现多线程的方案有:NSThread、NSOperation、GCD。在iOS所有实现多线程的方案中,GCD应该是最有魅力的,而且使用起来也是最方便的,因为GCD是苹果公司为多核的并行运算提出的解决方案。GCD是Grand Central Dispatch的简称,它是基于C语言的。使用GCD,我们不需要编写线程代码,其生命周期也不需要我们手动管理,定义想要执行的任原创 2016-01-14 23:13:46 · 738 阅读 · 0 评论 -
iOS中协议和延展的区别
延展部分一、延展的介绍延展也叫Extension,形式和类目相同,是一种特殊形式的类目(匿名类目),主要是为现有类添加私有方法,可以通过建立文件创建延展,也可以直接在现有类的.m中声明延展。延展的声明形式:@interface 现有类名 ()//这里可以声明方法@end二、延展的特点(注意事项)1、如果括号里没有类目名,则认为延展原创 2015-12-27 22:33:44 · 737 阅读 · 0 评论 -
ios7以后如何实现App长时间后台运行
对于ios7,苹果支持几种后台运行模式,backgroundTask,voip,后台播放音乐等,具体看官方文档就好。我这边需要在后台跑一个长时间运行的计时器,所以就不能让app进入suspend状态。很早以前听说可以通过后台播放音乐来实现,借鉴了一下,测试好几天,找出来了一个还比较靠谱的方案:首先在:- (void)applicationDidEnterBackgr原创 2016-01-14 22:20:29 · 1698 阅读 · 1 评论 -
iOS合理利用Local Push和Long-running background task
大家都知道iOS系统里,所有App进入后台的时候默认都是会暂停所有线程,等到再双击Home键回到前台才会继续执行。那有的场景需要在后台进行upload、download,或者进行一些计算等等怎么办呢?iOS7推出了一些新的API,让,那就是 NSURLSession ,就是为了取代前 NSURLConnection而生,在我们常用的 AFNetworking 2.0 中也新增了对其的支原创 2016-01-14 22:08:23 · 1697 阅读 · 0 评论 -
iOS调用相机和相册 并编辑保存到本地(个人中心设置头像)
第一步:导入协议UINavigationControllerDelegate,UIImagePickerControllerDelegate#import @interface ViewController : UIViewController@property (weak, nonatomic) IBOutlet UIScrollView *imageScroll;@prop原创 2016-01-10 22:04:37 · 6297 阅读 · 0 评论 -
iOS调用系统相册、相机 不能显示中文-解决方法
最近项目写到了个人中心,里面需要设置User的头像,调用系统相机和相册发现语言确是英文,明明测试设备上的语言是中文,为何还会显示英文呢?后来发现是因为没有允许引用使用框架库内语言。解决方法:在项目的info.plist里面添加Localized resources can be mixed 为 YES(表示是否允许应用程序获取框架库内语言)即可解决这个问题。接下来对比原创 2016-01-11 10:56:01 · 957 阅读 · 0 评论 -
iOS ARC也会有内存泄露
---------转自:无双---------iOS提供了ARC功能,很大程度上简化了内存管理的代码。但使用ARC并不代表了不会发生内存泄露,使用不当照样会发生内存泄露。下面列举两种内存泄露的情况。1,循环参照A有个属性参照B,B有个属性参照A,如果都是strong参照的话,两个对象都无法释放。这种问题常发生于把delegate声明为st转载 2015-12-26 19:15:58 · 545 阅读 · 0 评论 -
IOS项目集成ShareSDK实现第三方登录、分享、关注等功能
------------ 转自: 陌羲90 ------------(1)官方下载ShareSDK iOS 2.8.8,地址:http://sharesdk.cn/(2)根据实际情况,引入相关的库,参考官方文档。(3)在项目的AppDelegate中一般情况下有三个操作,第一是注册ShareSDK,第二是注册各个平台的账号,第三转载 2015-12-27 20:46:31 · 395 阅读 · 0 评论 -
示例详解:UIScrollview 与 Autolayout 的那点事
前言自从写了介绍Masonry那篇文章以后 就一直有人对UIScrollView的那个例子不是很理解123456UIView *container = [UIView new];[scrollView addSubview:container];[container mas_ma转载 2015-12-24 17:01:50 · 355 阅读 · 0 评论 -
详解苹果的黑魔法 - KVO 的奥秘
作者:Sindri前言在iOS开发中,苹果提供了许多机制给我们进行回调。KVO(key-value-observing)是一种十分有趣的回调机制,在某个对象注册监听者后,在被监听的对象发生改变时,对象会发送一个通知给监听者,以便监听者执行回调操作。最常见的KVO运用是监听scrollView的contentOffset属性,来完成用户滚动时动态改变某些控件的属性实现效果,包括渐转载 2015-12-24 16:58:40 · 373 阅读 · 0 评论 -
源码篇:MBProgressHUD
版本:0.9.1MBProgressHUD是一个显示HUD窗口的第三方类库,用于在执行一些后台任务时,在程序中显示一个表示进度的loading视图和两个可选的文本提示的HUD窗口。我想最多是应用在加载网络数据的时候。其实苹果官方自己有一个带有此功能的类UIProgressHUD,只不过它是私有的,现在不让用。至于实际的效果,可以看看github上工程给出的几张图例(貌似我这经常无法单独打开转载 2016-01-07 23:09:16 · 561 阅读 · 0 评论 -
使用系统的AVMetadataObject类实现二维码扫描
前言有关二维码的介绍,我这里不做过多说明, 可以直接去基维百科查看,附上链接QR code.IOS7之前,开发者进行扫码编程时,一般会借助第三方库。常用的是ZBarSDKa和ZXingObjC,IOS7之后,系统的AVMetadataObject类中,为我们提供了解析二维码的接口。经过测试,使用原生API扫描和处理的效率非常高,远远高于第三方库。扫描官方提供的接原创 2016-01-19 09:17:01 · 8179 阅读 · 1 评论 -
ios 程序判断是否第一次启动
if(![[NSUserDefaults standardUserDefaults] boolForKey:@"firstStart"]){ [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstStart"]; NSLog(@"第一次启动"); }else{ NSL转载 2015-12-31 14:30:01 · 502 阅读 · 0 评论 -
iOS图片处理(一)调用系统相机和相册获取图片,给相机添加自定义覆盖物
[摘要:起首,拍照或从相册挑选照片须要应用 UIImagePickerController,应用时须要增加两个协定 #import UIKit/UIKit.h @interface ViewController : UIViewControllerUINavigationControllerDelegate,UIImagePickerControllerDelegate] 首先,照相或原创 2015-12-31 14:12:47 · 2732 阅读 · 1 评论 -
IOS SDK详解之拍照/相册(默认+自定义拍照界面)
blog.csdn.net/hello_hwc前言: 本来要更新NSURLSession的UploadTask的,结果写那个Demo的时候想要写成拍照上传,然后就想到先写一个关于拍照的Demo吧。本文会先介绍下如何使用系统提供的界面拍照和选择相册,然后自定义拍照界面。注意,本文使用的是UIImagePickerController,所以不能完全的自定义,如果想要彻底的自定义拍照,建议选原创 2015-12-31 14:01:21 · 2259 阅读 · 0 评论 -
shareSDK自定义分享界面UI
如果要用shareSDK自带的UI,分享界面是不能修改的,只能更改分享平台的小图标和小图标下面的文字,如果非要更改分享界面,只能自己画UI,然后调用shareSDK的无UI分享方法。shareSDK技术支持给了一个链接,让我参考,点击进入,于是我自定义了一个分享类,然后只需要在分享事件的方法中构建分享内容publishContent,?1原创 2015-12-30 21:35:28 · 4318 阅读 · 0 评论 -
关于Xcode7中添加不了libresolv.dylib等类似库的问题
Xcode7中,由于某些机制,使得我们在添加类似于 libresolv.dylib、libz.dylib等库的时候,直接在Build Phases中点击加号添加,似乎已经无法找到相应的库。此时,我们可以直接在Build Settings中,手动添加。添加方法:找到Lingking,在Other Lingker Flags中添加。依据其命名规则,去掉前缀lib,和后缀.dylib,添加前缀-l,即-原创 2015-12-29 23:47:34 · 1767 阅读 · 0 评论 -
iOS消息推送机制的实现
iOS消息推送的工作机制可以简单的用下图来概括: Provider是指某个iPhone软件的Push服务器,APNS是Apple Push Notification Service的缩写,是苹果的服务器。 上图可以分为三个阶段:第一阶段:应用程序把要发送的消息、目的iPhone的标识打包,发给APNS。 第二阶段:APNS在自身的已注册P转载 2015-12-29 17:31:15 · 375 阅读 · 0 评论 -
GCD 信号量控制并发 (dispatch_semaphore)
当我们在处理一系列线程的时候,当数量达到一定量,在以前我们可能会选择使用NSOperationQueue来处理并发控制,但如何在GCD中快速的控制并发呢?答案就是dispatch_semaphore,对经常做unix开发的人来讲,我所介绍的内容可能就显得非常入门级了,信号量在他们的多线程开发中再平常不过了。 信号量是一个整形值并且具有一个初始计数值,并且支持两个操作:信号通知和等待。当一个信转载 2015-12-29 17:01:34 · 425 阅读 · 0 评论 -
iOS开发UI篇—以微博界面为例使用纯代码自定义cell程序编码全过程(二)
iOS开发UI篇—以微博界面为例使用纯代码自定义cell程序编码全过程(二)说明: 该部分完成对自定义cell页面的基本搭建,尚未进行优化处理。且还存在很多问题,譬如每行的高度设置暂时是固定的,这些问题将会在下一篇文中解决。 一、实现效果 二、实现代码数据模型部分:YYweiboModel.h文件 1 // 2 // Y转载 2015-12-28 11:18:48 · 590 阅读 · 0 评论 -
URI跳转方式地图导航的代码实践
作者:里脊串 授权本站转载。前言之前介绍了我正在做的是一款定位主打的应用。然后最近我们需要做一个定位导航的功能,能够让用户从当前位置导航到指定目的地(默认以驾车的方式导航)。手机上的导航方式,分应用内导航和应用外导航:应用内导航是指使用地图服务提供的SDK(比如高德,百度等等),直接将导航功能嵌入到我们自己的APP内部但是这个方案我个转载 2016-01-04 14:35:19 · 2908 阅读 · 1 评论 -
MAC下使用终端和Xcode 7进行SVN服务器建立与使用
MAC下的SVN服务器建立:from : http://blog.csdn.net/q199109106q/article/details/8655204在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境。在Mac环境下,由于Mac自带了svn的服务器端和客户端功能,所以我们可以在不装任何第三方软件的前提下使用svn功能,不过还需做一下简单的配置原创 2016-01-04 19:26:33 · 4828 阅读 · 0 评论 -
iOS 判断并使用 百度地图 高德地图 自带地图 导航(使用URI,不集成sdk)
[objc] view plaincopyBOOL hasBaiduMap = NO; BOOL hasGaodeMap = NO; if ([[UIApplication sharedApplication]canOpenURL:[NSURL URLWithString:@"baidumap://转载 2016-01-04 22:13:04 · 1230 阅读 · 0 评论 -
NSTimer与RunLoop的具体问题分析
我想说你知道NSTimer会retain你添加调用方法的对象吗?你知道NSTimer是要加到runloop中才会起作用吗?你知道NSTimer会并不是准确的按照你指定的时间触发的吗?你知道NSTimer就算添加到runloop了也不一定会按照你想象中的那样执行吗? 如果上面提出的哪些问题,你并不全部了解,那么请细心的看完下面的文章,上面的那几个问题我会一一说明,并给出详细的例子。原创 2016-01-07 19:36:49 · 1056 阅读 · 0 评论 -
在子线程中使用runloop,正确操作NSTimer计时的注意点 三种可选方法
这篇文章是我的【iOS开发每日小笔记】系列中的一片,记录的是今天在开发工作中遇到的,可以用很短的文章或很小的demo演示解释出来的小心得小技巧。它们可能会给用户体验、代码效率得到一些提升,或是之前自己没有接触过的技术,很开心的学到了,放在这里得瑟一下。其实,90%的作用是帮助自己回顾、记忆、复习。 一直想写一篇关于runloop学习有所得的文章,总是没有很好的例子。正巧自己的上线A转载 2016-01-07 19:34:35 · 676 阅读 · 0 评论 -
Xcode7 安装Alcatraz来管理所有的插件--安装方法
1、关闭Xcode;2、在终端输入:mkdir -p ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-inscurl -fsSL https://raw.github.com/supermarin/Alcatraz/master/Scripts/install.sh | sh3、等执行完毕后,打开Xcode,选择 l原创 2016-01-07 10:53:49 · 456 阅读 · 0 评论