10 2013 档案
摘要:Cocoa提供了一个类NSPredicate类,该类主要用于指定过滤器的条件,该对象可以准确的描述所需条件,对每个对象通过谓词进行筛选,判断是否与条件相匹配。谓词表示计算真值或假值的函数。 NSPredicate *predicate; predicate=[NSPredicatepredicateWithFormat:@"name=='Herbie'"];//用predicateWithFormat创建一个谓词,name作为键路径 BOOL match=[predicateevaluateWithObject:car];//car作为接收对象,evalua
阅读全文
摘要:1.去重NSArray * uniqueVarValueArray= [origArray valueForKeyPath:@"@distinctUnionOfObjects.VarKey"];2.判断Array中是否包含某一规则的对象,并返回一个数组:NSPredicate *filterPredicate = [NSPredicate predicateWithFormat:@"SELF CONTAINS %@", regex];并调用:- (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)p
阅读全文
摘要:前言本人今年主要在负责猿题库iOS客户端的开发,本文旨在通过分享猿题库iOS客户端开发过程中的技术细节,达到总结和交流的目的。这是本技术分享系列文章的第三篇。本文涉及的技术细节是:基于CoreText的排版引擎。CoreText概述因为猿题库的做题和解析界面需要复杂的排版,所以我们基于CoreText实现了自己的富文本排版引擎。我们的排版引擎对公式、图片和链接有着良好支持,并且支持各种字体效果混排。对于内容中的图片,支持点击查看大图功能,对于内容中的链接,支持点击操作。下图是我们应用的一个截图,可以看到公式,图片与文字混排良好。对于富文本排版,除了可以用CoreText实现外,还可以用UIWe
阅读全文
摘要:这款比JSONKit还好用,效率跟iOS5原生的差不多,不过解析后对内存的释放比原生的要多.所以推荐https://github.com/nextive/NextiveJson顺便提一下解析XML效率跟资源占用综合评定最好的是TBXml
阅读全文
摘要:首先创建一个农历文件LunarCalendar.h 1 // 2 // LunarCalendar.h 3 // Hnair4iPhone 4 // 5 // Created by yingkong1987 on 13-10-10. 6 // Copyright (c) 2013年 yingkong1987. All rights reserved. 7 // 8 9 #import 10 11 struct SolarTerm 12 { 13 __unsafe_unretained NSString *solarName; 14 int sol...
阅读全文
摘要:因为没有时间自己写一个日历,所以暂时使用了一个三方的日历https://github.com/square/objc-TimesSquare但是在iOS7下.突然产生了一个诡异的BUG..如下图:再研究了源码,找到那些日期button的初始化的那些方法都在内...然后断点调试之.发现iOS7下的layoutSubviews方法没有执行.然后看了下其他的几个方法.找了一个更好的地方放这些初始化函数.这样的话在iOS7跟iOS6下都可以无忧了.如果有更好的意见可以给我留言.大家一起讨论讨论.唉,折腾了一个晚上都有点困了
阅读全文
摘要:在 IOS 中,对 UIScrollView 的滚动条(ScrollBar Indicators)的自定义设置接口,一直都是很少的。除了能自定义简单的样式(UIScrollViewIndicatorStyle)和是否启用外,对于 一直显示滚动条、自定义滚动条(ScrollBar Indicators)的Width 、颜色等,都是不能很方便的设置的。 虽然不能很方便,但是还是能实现的。通过一天的努力,不断的 google 和 overflow,终于找到了几个比较完美的解决办法。参考来源:http://www.developers-life.com/scrollview-with-scrolls-
阅读全文
摘要:原文链接:http://www.objc.io/issue-3/advanced-auto-layout-toolbox.html在我的上一个项目中,因为是面向公司内部使用的客户端,所以我直接抛弃了iOS5,在项目中大量使用了iOS6中的新特性:自动布局,才发现生活可以如此美好(除了调bug的时候),发张图大家感受一下,下面分别为横屏和竖屏下的布局,再也不要像之前那样适配的死去活来了:这篇文章并没有具体介绍自动布局的一些基本概念,主要讲解了一些高级的使用方法和调试技巧,文中有的句子比较长,意思也有点难懂,所以需要静下心仔细揣摩。如果你刚接触自动布局,推荐你先看这几篇文章:1.官方的Guide:
阅读全文
摘要:Clambake for iPhone有一个回退按钮在所有的导航条上.这是一个简单的没有文字箭头.实现一个自定义按钮是简单的.类似这个设置controller 的navigationItem一个leftBarButtonItem. 1 - (void)viewDidLoad 2 { 3 self.navigationItem.leftBarButtonItem = [self backButton]; 4 } 5 6 - (UIBarButtonItem *)backButton 7 { 8 UIImage *image = [UIImage imageNamed:@"back_bu
阅读全文
摘要:和任何新的iOS版本一样,有着一堆堆的新技巧和修改需要处理.有些我并不会立即遇到,所以这篇文章并不是一套完整技巧汇总.只是分享一些我碰巧遇到的问题.如果你有任何更多的发现,可以发Twitter或者email给我.我将免费一起汇入这篇文章.Stealing The Blur不幸的是,苹果并没有给你在views上直接使用模糊效果的方法.不过有一些聪明人采取修改UIToolbar的layer来做到iOS模糊.iOS-blur你如果是想使用黑色风格的模糊,设置这个toolbar的barstyle为UIBarStyleBlack.Tinting The Navbar设置导航条的颜色,但是没有效果?原来还
阅读全文
摘要:什么是UICollectionViewUICollectionView是一种新的数据展示方式,简单来说可以把他理解成多列的UITableView(请一定注意这是UICollectionView的最最简单的形式)。如果你用过iBooks的话,可能你还对书架布局有一定印象:一个虚拟书架上放着你下载和购买的各类图书,整齐排列。其实这就是一个UICollectionView的表现形式,或者iPad的iOS6中的原生时钟应用中的各个时钟,也是UICollectionView的最简单的一个布局,如图:iOS6 iPad版时钟应用最简单的UICollectionView就是一个GridView,可以以多列的
阅读全文
摘要:这是博主的WWDC2012笔记系列中的一篇,完整的笔记列表可以参看这里。如果您是首次来到本站,也许您会有兴趣通过RSS,或者通过页面左侧的邮件订阅的方式订阅本站。AutoLayout在去年的WWDC上被引入Cocoa,而在今年的WWDC上,Apple不惜花费了三个Session的前所未见的篇幅来详细地向开发者讲解AutoLayout在iOS上的应用,是由起原因的:iPhone5的屏幕将变为4寸,开发者即将面临为不同尺寸屏幕进行应用适配的工作。Android平台开发中最令人诟病的适配工作的厄运现在似乎也将降临在iOS开发者的头上。基于这样的情况,Apple大力推广使用AutoLayout的方法来
阅读全文
摘要:MAC下安装命令:$ brew install cloc其他的linux安装$ aptitude install cloc使用方法.到目录下运行:$ cloc .The default output will show you a breakdown by language. Here’s an example of what it’ll look like:php much?You can, of course, customize the poop out of it as well.cloc --helpto nerd out.
阅读全文
摘要:iOS github大全 :有600多个iOS各方面的开源库,并分类了一天天学习iOS7 :每天学习一点iOS7的新特性
阅读全文
摘要:这几天处理定位相关的代码,彻彻底底的被火星坐标恶心到了。恶心列表从 CLLocationManager 取出来的经纬度放到 mapView 上显示,是错的!从 CLLocationManager 取出来的经纬度去 Google Maps API 做逆地址解析,当然是错的!从 MKMapView 取出来的经纬度去 Google Maps API 做逆地址解析终于对了。去百度地图API做逆地址解析,依旧是错的!从上面两处取的经纬度放到百度地图上显示都是错的!错的!的!当时我还不知道火星坐标、XX坐标,大骂苹果SB(我错了)…… 如果你碰到上述情况,接着往下看。名词解释:地球坐标(WGS84)国际标
阅读全文
摘要:1、if ([inputStream streamStatus] == NSStreamEventErrorOccurred) { 修改成:if ([inputStream streamStatus] == (NSStreamStatus)NSStreamEventErrorOccurred) { 2、return [[NSDate date] addTimeInterval:maxAge]; 修改成:return [[NSDate date] dateByAddingTimeInterval:maxAge];
阅读全文

浙公网安备 33010602011771号