iOS
文章平均质量分 63
20kg
这个作者很懒,什么都没留下…
展开
-
结构体存储在存储器中,用fetchedResultsController来实现
- (NSFetchedResultsController *)fetchedResultsController { if (_fetchedResultsController != nil) { return _fetchedResultsController; } NSFetchRequest *fetc转载 2014-09-29 09:04:24 · 505 阅读 · 0 评论 -
实现几个连续输入的textfield
如图所示,需要实现连续输入和删除的textfield 代码如下: 首先定义一个宏来实现过滤非法字符串,让输入的字符都是我定义的里面的字符。 #define kInputNumbers @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\n" 下面是定义的4个textfield @property (原创 2015-08-19 14:34:09 · 332 阅读 · 0 评论 -
手写下拉刷新
虽然iOS8之后在tableViewController中加上了headerControl,但是只能继承tableViewController的时候使用,当tableView是UIViewController其中一个控件的时候就没有整个功能了,所以自己手写下拉刷新还是有必有的。之前自己写了一遍,之后在写的时候还是会有很对地方忘记,所以现在记录一下: 首先是定义一些状态和对外暴露的方法:原创 2015-08-19 14:27:10 · 572 阅读 · 0 评论 -
缓存中实现LRU算法
1、原理概述 AppCache的实现当中,加上内存缓存,这里使用LRU算法。先说一下LRU算法,其思想就是最近使用的数据那么他下次也是用的概率就会更高,基于这一思想,我们把最近使用的数据放入内存缓存里面,将不常使用的数据存入磁盘,这样来有效的减少访问磁盘的次数,毕竟磁盘访问会占用更多的内存,消耗更长的时间。那么加上一层内存缓存的话可以提升用户体验。 思路是这样:原创 2015-08-24 16:16:27 · 426 阅读 · 0 评论 -
tableviewcell加载的几种方法
tableviewcell在加载的过程中常常需要重用,主要在使用的是两种加载的方法。第一种是在storyboard中直接加载,这种方法不需要进行初始化,可以直接使用。但是要注意identifier一定要设置,控制器是根据identifier来识别cell的。 第二种方法是用xib文件来加载,同样要设置identifier。不过多了从文件中读取xib的过程。代码如下: - (UI原创 2014-12-08 15:22:33 · 1486 阅读 · 0 评论 -
iOS 使用UILocalizedIndexedCollation实现通讯录样式的索引
前一段时间要在应用程序中要加入检索的功能,在网上找了很多是手写的,于是今天在这里写一下备忘。直接贴的项目代码。 第一步:对数据源进行排序和分区处理。这里addressBookArray是存储最后的排序完数组。backToControllerData是函数传入的数据源。 NSMutableArray *addressBookArrayTmp=[[NSMutableArray alloc]原创 2014-12-09 17:04:46 · 1844 阅读 · 0 评论 -
TextView中的使用技巧
一、新建一个textView //初始化 UITextView *textView = [[[UITextView alloc] init] autorelease]; //设置代理 需在interface中声明UITextViewDelegate textView.delegate = self; //字体大小 textView.font = [UIFont syste转载 2014-10-31 20:53:12 · 317 阅读 · 0 评论 -
iOS开发UI篇—UIWindow简单介绍
iOS开发UI篇—UIWindow简单介绍 一、简单介绍 UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了 一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow。也转载 2014-10-31 20:23:01 · 342 阅读 · 0 评论 -
iOS 中推送的使用详解
- (IBAction)setReminder:(id)sender { NSDate *now = [NSDate date]; if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) { UIUserNotificationType myTypes = U原创 2014-10-31 19:03:35 · 321 阅读 · 0 评论 -
做一个简单的日历
//获得当前日期 NSDate *date = [NSDate date]; NSCalendar *calendar = [NSCalendar currentCalendar]; NSDateComponents *comps; //本年 comps = [calendar components:(NSYearCalendarUnit) fromDate:date]; NSInte转载 2014-10-09 15:11:38 · 571 阅读 · 0 评论 -
版本适配的问题(持续更新)
1、目前为止遇到的最坑的就是iOS6的适配问题。因为目前的代码都是基于autoLayout来实现的,但是iOS6 对autoLayout并不友好。首先是不能有冲突的约束,虽然在iOS8中只是警告,但是在iOS6版本上就会直接crash。 2、冲突的问题比较容易解决,后面遇到的也是和autoLayout有关,就是当你controller对应的view里面有约束冲突的时候,这个view不会初始化,这原创 2015-08-23 12:21:16 · 382 阅读 · 0 评论