- 博客(33)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
转载 iOS触摸事件处理
链接:http://www.cnblogs.com/Quains/p/3369132.html主要是记录下iOS的界面触摸事件处理机制,然后用一个实例来说明下应用场景.一、处理机制界面响应消息机制分两块,(1)首先在视图的层次结构里找到能响应消息的那个视图。(2)然后在找到的视图里处理消息。【关键】(1)的过程是从父View到子View查找,而(2)是从找到的那
2016-07-31 15:04:05 234
转载 iphone数据存储之-- Core Data的使用(一)
链接:http://www.cnblogs.com/xiaodao/archive/2012/10/08/2715477.html一、概念1.Core Data 是数据持久化存储的最佳方式2.数据最终的存储类型可以是:SQLite数据库,XML,二进制,内存里,或自定义数据类型在Mac OS X 10.5Leopard及以后的版本中,开发者也可以通过继承NSPersistent
2016-07-29 09:36:19 285
转载 使用FMDB事务批量更新数据库
链接:http://www.cnblogs.com/zzltjnh/p/FMDB_Transaction.html今天比较闲看到大家在群里讨论关于数据库操作的问题,其中谈到了“事务”这个词,坦白讲虽然作为计算机专业的学生,在上学的时候确实知道存储过程、触发器、事务等等这些名词的概念,但是由于毕业后从事的不是服务器方面的工作,对数据库方面的知识一直停留在理论阶段,在iOS中有两种比较常用
2016-07-27 09:47:10 521
原创 iOS FMDB保存图片
FMDB是对sqlite的封装,把面向过程,c接口封装成了大家熟悉的oc接口,并且对sqlite中令人头疼的线程安全做了处理,当然不变的是还是跟sqlite一样,需要我们写NSString类型的sql语句,一不小心拼错了,检查各大半天,小吐槽一下。言归正传,FMDB是没有图片类型的字段的,但是提供了更灵活地方法:blob类型,也就是二进制,所以我们只要把图片转化为NSData就可以存放了。
2016-07-26 18:04:36 3897
转载 libsqlite3.dylib与libsqlite3.0.dylib区别
链接:http://www.cnblogs.com/easonoutlook/archive/2013/01/05/2845634.html实际上libsqlite3.dylib本身是个链接,它指向libsqlite3.0.dylib。也就是说在项目里如果你添加libsqlite3.dylib和添加libsqlite3.0.dylib其实是添加了同一个文件,没有区别,那为什么要添加
2016-07-25 16:16:52 386
原创 iOS 数据持久化之-NSUserDefaults
NSuserDefaults在iOS中特别适合于存储轻量级数据:用户和密码,是否已登录标志,mjrefresh的记录上次刷新时间等。NSuserDefaults可以存储的数据类型有:NSNumber、NSString、NSDictionary、NSArray、NSData、NDDate基本覆盖了常用的数据类型,以下是它们使用的例子: //NSNumber [[N
2016-07-25 10:44:22 307
原创 gcd中同步异步并行串行线程数目的关系
gcd的功能很强大,使用起来也很简便,但理解起来还是有些费劲的。下面记录的主要是gcd同步异步并行串行得关系,gcd的功能远不止这些。一、串行队列1、同步运行dispatch_queue_t searialQueue =dispatch_queue_create("SearialQueue",DISPATCH_QUEUE_SERIAL);dispatch_s
2016-07-24 11:58:37 996
原创 UITabBar和UIToolbar的区别
大家都知道在UITabBarController的底部有一个tabbar,也就是UITabbar对象,用户控制器之间快速切换。UINavigationController控制器的底部有一个toolbar(默认是隐藏的,可用通过[self.navigationControllersetToolbarHidden:NO])显示出来,UIToolBar对象,可以在上面添加UIBarButtonI
2016-07-23 18:39:24 977
转载 ios 导航栏,标签栏,工具栏和状态栏
链接:http://www.cnblogs.com/Piosa/archive/2011/12/16/2290811.html状态栏虽然您难以控制状态栏的内容,但是您可以定制它的外观,并在一定程度上定制它的行为。具体来说,您可以:设定网络活动指示器是否应该可见。如果您的应用程序正在执行的一项网络操作会持续几秒钟以上,则应该显示网络活动指示器。如果该网络操作将在几秒钟之内
2016-07-23 18:19:27 1952
原创 applicationiconbadgenumber不显示
原因在ios8及之后,需要用户授权才能显示:UIUserNotificationSettings *settings = [UIUserNotificationSettingssettingsForTypes:UIUserNotificationTypeBadgecategories:nil];[[UIApplicationsharedApplication] re
2016-07-23 13:45:47 470
转载 iOS开发UI篇—程序启动原理和UIApplication
链接:http://www.cnblogs.com/wendingding/p/3766347.html一、UIApplication1.简单介绍(1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序。(2)每一个应用都有自己的UIApplication对象,而且是单例的,如果试图在程序中新建一个UIApplica
2016-07-23 13:29:26 309
原创 ios创建空项目
1、先创建一个 Single View Application。2、删除Main.storyboard和launchScreen两项。3、找到info.plist文件 删除其中的Launch screen interface file base name和Main storyboard file base name两项。4、在TARGETS下,general下找到 App Icon
2016-07-23 12:39:16 447
转载 UINavigationController 、UINavigationBar 、UINavigationItem 超清晰直观详解
链接:http://www.cnblogs.com/ygm900/p/3659619.htmlUINavigationController 部分1、 UINavigationController 是一个容器类。里面盛放的是UIViewController。容器的意思是,如果你不放入UIViewController,里面就是空的,什么也没有。这个容器在
2016-07-23 11:27:51 579
原创 ios 键盘右上角添加完成按钮
在调出键盘后,我们通常希望在键盘的右上角添加一个完成的按钮,也就是给键盘添加一个附属的视图。我们知道,在uitextField或uitextView获得焦点的时候,键盘弹出。要在键盘的右上角添加完成按钮,其实就是通过设置它们的inputAccessoryView属性实现的:先看看现实方法: UIToolbar *bar = [[UIToolbaralloc] init
2016-07-21 10:55:09 11214
转载 iOS多线程的初步研究(九)-- dispatch源
原文链接:http://www.cnblogs.com/sunfrog/p/3308766.htmldispatch源(dispatch source)和RunLoop源概念上有些类似的地方,而且使用起来更简单。要很好地理解dispatch源,其实把它看成一种特别的生产消费模式。dispatch源好比生产的数据,当有新数据时,会自动在dispatch指定的队列(即消费队列)上运行相应地
2016-07-18 22:32:18 244
转载 ios中timer相关的延时调用需要注意的地方
ios中timer相关的延时调用,常见的有两种,一种是NSObject中的performSelector:withObject:afterDelay:以及performSelector:withObject:afterDelay:inModes:。这两个方法在调用的时候会设置当前runloop中timer,前者设置的timer在NSDefaultRunLoopMode运行,后者则可以指定NSRun
2016-07-18 15:03:15 394
原创 iOS 生产者消费者
在编码中,有时会遇到一个模块产生数据,另外一个模块处理数据的情况,不论是为了模块间的结偶或是并发处理还是忙闲不均,我们都会在产生和处理数据的模块之间放置缓存区,作为生产和处理数据的仓库。以上的模型就是生产者消费者模型。为了简化上述模型,生产者和消费者只用一个线程替代,缓存区用数组表示。我们知道,多个线程数据进行读写,要对这个共享数据进行读写保护,也就是线程的同步。在ios中,我们可以通过加
2016-07-18 13:41:53 870
转载 iOS设计模式(03):工厂方法
http://www.cocoachina.com/ios/20130516/6219.html 什么是工厂方法? GOF是这样描述工厂模式的:“Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory M
2016-07-17 15:21:02 219
原创 isKindOfClass和isMemberOfClass区别
isMemberOfClass判断一个对象是否是类的实例。isKindOfClass判断一个对象是否是类的实例,或者是派生自该类的实例。
2016-07-17 14:36:23 561
转载 IOS设计模式浅析之简单工厂模式(SimpleFactory)
链接:http://www.cnblogs.com/goflee/p/3484560.html概述 首先说明一下,简单工厂模式不属于23种GOF设计模式之一。它也称作静态工厂方法模式,是工厂方法模式的特殊实现。这里对简单工厂模式进行介绍,是为本系列后面的工厂方法和抽象工厂模式做一个引子。定义 “专门定义一个类来负责创建其他类的实例,被创建的实例常常具有共同的父类
2016-07-17 11:49:39 302
转载 Objective-C实现多继承
链接:http://www.linuxidc.com/Linux/2012-06/63170.htm我们都知道Objective-C不能像C++一样支持多继承,但是在Objective-C的使用经常会碰到需要使用多继承的情况。例如,ClassA中有methodA,ClassB中methodB,而现在需要使用这两个类中的方法。如何按照C++的编程思路,毫无疑问采用多继承就搞定了,
2016-07-17 11:41:52 422
原创 jsonModel解释驼峰和下划线数据
JSONModel使用起来很是方便,特别是数据模型比较复杂的时候,但在使用的过程当中也发现了一些不足之处。JSONModel默认只能解释驼峰,想要解析下划线类型的数据的话需要继承JSONModel并重写:+ (JSONKeyMapper *)keyMapper;这个方法:eg:/**用于将服务器传过来的以下划线字段转化为驼峰类型:a_bc->aBc*
2016-07-13 00:02:05 1647
转载 ReactiveCocoa入门教程——第二部分
链接:http://benbeng.leanote.com/post/ReactiveCocoaTutorial-part1本文翻译自RayWenderlich ReactiveCocoa Tutorial – The Definitive Introduction: Part 2/2 ReactiveCocoa是一个框架,它能让你在iOS应用中使用函数响应式编程(F
2016-07-10 14:41:43 609
原创 reactiveCocoa rac_signalForControlEvents多次触发解决方法
遇到这个问题十有八九是cell的重用问题,这里不是说你的cell重用有问题,而是reactiveCocoa在cell上使用的rac_signalForControlEvents重用问题。我们知道cell在移出屏幕时并没有被销毁,而是到了一个重用池中,放到池子前我们已经做了[[cell.btn rac_signalForControlEvents:UIControlEventTouchU
2016-07-09 19:10:20 5611
转载 UITableView api解析
转载请注明出处:http://blog.csdn.net/qq11231325UITableView : UIScrollView 1.创建一个UITableView对象ITableView *tableView = [[UITableView alloc]initWithFrame:[[UIScreen mainScreen] bounds] style:UI
2016-07-09 15:37:59 356
原创 设置UITableView section之间的间距
当UITableView的style为UITableViewStyleGrouped时,section之间默认的距离往往不是我们想要的。那怎么设置呢?我们知道每个section都有自己的header和footer,它们的高度和就是section之间的间距。知道间距的问题所在就好改了。很简单:_tableView.sectionHeaderHeight = 10; _tableV
2016-07-09 13:54:10 11564
原创 UITableViewCell的backGroundView和selectedBackgroundView在cell中的层次
backGroundView为yucell的最底层,而selectedBackgroundView则相反,位于最顶层。也就是说,如果你在cell上(一般会在其contentView)堆放了如何的不透明的view,则backGroundView都会被覆盖,而selectedBackgroundView在选中的情况下会覆盖你在cell中堆放的view。backGroundView和
2016-07-09 12:59:53 1578
原创 UITableViewCell改变选中时背景样式
1、如果不想让选中状态下cell的背景发生改变: cell.selectionStyle =UITableViewCellSelectionStyleNone;2、自定义未选择下cell的背景:可以通过cell自带的的backgroundView: cell.backgroundView = [[UIView alloc]init]; cell.ba
2016-07-09 12:39:34 1954
原创 UITableView滚动时NSTimer不执行
解决方法:[[NSRunLoop currentRunLoop] addTimer:timer forMode:UITrackingRunLoopMode]; 或[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];原因分析:NSTImer的实现时给予runLoop的,而runloop又有以
2016-07-06 01:59:08 1025
原创 ios弹簧动画实现
我们经常看到弹簧动画,像我们熟悉的微博就是一例,其实弹簧的动画的实现是很简单的,比如我想是想某个按钮的上下震动的弹簧效果: UIButton *button = [[UIButtonalloc] initWithFrame:CGRectMake(100,100, 100,50)]; button.backgroundColor = [UIColorr
2016-07-05 10:47:37 2968
原创 dispatch_after的使用及iOS延时实现方法
如果需要延时处理某件事情,则我们可以通过dispatch_after来实现,比如从现在开始,延时3秒后执行某个方法:dispatch_time_t timer =dispatch_time(DISPATCH_TIME_NOW,3 * NSEC_PER_SEC); dispatch_after(timer, dispatch_get_main_queue(), ^
2016-07-05 10:25:49 12500
原创 oc中init和initialize的区别
关于这两个方法,我们对init比较熟悉,对于initialzie怎想对陌生。- (id) init;+ (void) initialize;一个对像方法,一个类方法。init就是对象实例化的实话会调用,比如[[NSObject all] init]和[NSObject new]时init就会被调用;每个实例化一个对像init就被调用一次。initialize则在对像的第一个
2016-07-02 18:51:41 411
原创 awakeFromNib的调用机制
如果细心的话,会发现在创建UITableViewCell的子类时,如果沟上 "Also create XIB file"的时候会自动生成 awakeFromNib 方法,不勾则不会生成,根据方法名也很容易看出来。注意,这个函数只有在创建了.nib文件的时候才会被调用,并且这个方法背调用的时候xib文件连线生成的对像已经初始化,并且frame什么的都已固定好,所以,我们可以在这个方法里面添加自己定义
2016-07-02 18:41:03 2943
在uiwebview中使用保存的cookie做自动登录。
2015-07-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人