- 博客(18)
- 收藏
- 关注
原创 lldb 命令使用
“po”命令是“print object”(打印对象)的简写。“$eax”是cup的一个寄存器。在一个异常的情况下,这个寄存器将会包含一个异常对象的指针。注意:$eax只会在模拟器里面工作,假如你在设备上调试,你将需要使用”$r0″寄存器。例如,假如你输入:(lldb) po [$eax class]你将会看像这样的东西:(id) $2 = 0x01446e84 NSExc
2015-03-31 11:41:34 1625
原创 ios autolayout debug调试技巧
这篇文章并没有具体介绍自动布局的一些基本概念,主要讲解了一些高级的调试技巧。这篇文章不是用来介绍Auto Layout的。如果你还没用过它,那还是先去WWDC 2012看看基础教程吧(1,2,3)。如果我们在iOS中遇到不可满足的约束条件,我们只能在输出的日志中看到视图的内存地址。尤其是在更复杂的布局中,有时很难辨别出视图的哪一部分出了问题。然而,在这种情况下,还有几种方法
2015-03-31 11:16:41 2327
原创 模拟UIView的hitTest:方法和pointInside:方法的实现
对于UIView 的两个方法的讲解:- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event网上对这两个方法的讲解很多,但是大部分是纯文字的描述,我不再赘述,需要可以自己百度“UIView hitTest”
2015-03-30 22:29:50 1254
原创 ios runtime swizzle
Objective-C的hook方案(一): Method Swizzling在没有一个类的实现源码的情况下,想改变其中一个方法的实现,除了继承它重写、和借助类别重名方法暴力抢先之外,还有更加灵活的方法吗?在Objective-C编程中,如何实现hook呢?标题有点大,计划分几篇来总结。本文主要介绍针对selector的hook,主角被标题剧透了———— Method Swizzling 。
2015-03-29 21:25:01 846
原创 应用程序中内存的分区
内存区域一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。 3、全局区(静态区)(static)— 全局变量和静
2015-03-26 21:14:38 644
原创 collection view 根据delegate来布局cell的大小
一般我们在做collection view时都是用 UICollectionViewFlowLayout来进行布局.使用UICollectionViewDelegate作为代理.但是这样每个cell的大小是我们不方便通过代码动态确定的.在做项目是发现源码里有 @protocol UICollectionViewDelegateFlowLayout UICollectionView
2015-03-26 10:08:25 3303
原创 oc 可变参数传递
- (id)initWithFrame:(CGRect)frame delegate:(id)delegate focusImageItems:(SGFocusImageItem *)firstItem, ...{ self = [super initWithFrame:frame]; if (self) { NSMutableArray *imageItems
2015-03-18 18:28:05 2166
原创 ios 将任意对象存进数据库
要将一个对象存进数据库的blob字段,最好先转为NSData,一个对象要遵守NSCoding协议,实现协议中相应的方法,才能转成NSData。NSData *statusData = [NSKeyedArchiver archivedDataWithRootObject:obj];[_db executeUpdateWithFormat:@"INSERT INTO t_a(a, ids
2015-03-17 09:48:59 2076
原创 ios 仿新浪微博 UINavigationController 向左滑动时显示上一个控制器的View.
仿新浪微博 UINavigationController 向左滑动时显示上一个控制器的View.实现原理,UINavigationController 的 self.view显示时把当前显示的view截图下来,保存到一个数组中。当push一个view时把上一个view的截图放到self.view后面,当self.view向右拖动时显示上一个view。NavigationCont
2015-03-16 14:49:19 1645 1
原创 ios 仿android gallery控件
ios 上没有发现与android gallery类似的控件,由于在项目上需要使用到.采用UICollectionView实现ViewController.m#import "ViewController.h"#import "ImageCell.h"#import "LineLayout.h"@interface ViewController () @pro
2015-03-16 11:41:29 1141 1
原创 ios 瀑布流
瀑布流,又称瀑布流式布局。是比较流行的一种页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部。说明:(1)瀑布流每一个的宽度是一样的,都是高度不一样(2)补齐算法,哪里比较短就补哪里,不是简单的从左到右排(两列之间的差距越来越大)。在ios中目前比较好的实现方式有2种。1.仿照UITableView思路自定义ScrollView 2.
2015-03-16 10:59:45 1516
原创 hibou 主界面自定义侧滑
给要侧滑的View添加UIPanGestureRecognizer#pragma mark 手势识别器回调方法- (void)dragView:(UIPanGestureRecognizer *)gesture{ switch (gesture.state) { caseUIGestureRecognizerStateBegan:
2015-03-13 18:35:53 683
原创 ios 应用多语言自由切换实现
第一次进入应用获取本机语言.1.如果本机语言在软件实现语言列表里.则默认选中本机语言,但是用户还是可以选择其它语言.2.如果本机语言不在软件实现语言列表里,则默认选中英语.用户还是可以选择其它语言./** 初始化语言 */- (void)initLanguage{ //1. 获取系统支持的语言 _languages = [NSMutableA
2015-03-13 17:01:48 1112 2
原创 速递花新特性界面滑动一段后scrollView才滚动的 实现方法
1.让 scrollView不可以根据用户手指滚动self.scrollView.scrollEnabled =NO;2.给 scrollView添加手势 UIGestureRecognizer *gesture = [[UIPanGestureRecognizeralloc] initWithTarget:selfaction:@sele
2015-03-11 11:38:02 793
原创 几款iOS开发常用工具
ImageOptim – 另一个Mac应用,可以压缩PNG图片来节省空间。大多数PNG文件可以省掉几个百分点的大小,有时甚至30%或更多。图片更小意味着应用尺寸更小,运行时加载它们所使用的内存也更小。Prepo – 一个Mac上的小应用,可以将图片快速变换为你需要的多个尺寸。只需要拖动一个大图标文件(比如,1024*1024)到Prepo,它就会生成512*512的iTunesArtwork,11
2015-03-06 16:34:13 1280
原创 IOS调用系统联系人界面获取联系人信息
.h文件[cpp] view plaincopyprint?#import //系统自带的联系人framework #import #import @interface EXABViewController : UIViewController @end .m文件
2015-03-06 16:07:50 1142
原创 dispatch_async 和 dispatch_sync 的区别
dispatch_sync(),同步添加操作。他是等待添加进队列里面的操作完成之后再继续执行。 dispatch_queue_t concurrentQueue = dispatch_queue_create("my.concurrent.queue", DISPATCH_QUEUE_CONCURRENT); NSLog(@"1"); dispatch_syn
2015-03-06 13:56:03 7136
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人