代码改变世界

文章分类 -  iphone&ipad

转:了解iPhone应用程序中App目录结构

2011-12-24 16:46 by 张智清, 2330 阅读, 收藏, 编辑
摘要: 首先我们知道iPhone的App的目录结构如下:对于一个运行在iPhone的App,它只能访问自己根目录下的一些文件(即所谓沙盒sandbox保护机制)。一个app发布到iPhone上后,它的目录结构如下:其中的app root根目录可以用NSHomeDirectory()访问到;Documents目录就是我们可以用来写入并保存文件的地方,一般可通过:1 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);2 NSString *documentsDir 阅读全文

转:iphone遮盖系统栏,实现自定义效果的状态栏

2011-12-24 16:12 by 张智清, 466 阅读, 收藏, 编辑
摘要: 下面的代码演示了创建一个小图标从时间的左侧移动到时间右侧的简单效果,关于自定义状态栏可以参考。CGRect frame = {{0,0},{320,20}};UIWindow *wd = [[UIWindow alloc] initWithFrame:frame];[wd setBackgroundColor:[UIColor clearColor]];[wd setWindowLevel:UIWindowLevelStatusBar];frame = CGRectMake(100,0,30,20);UIImageView *imgv = [[UIImageView alloc] initWi 阅读全文

ios4开始CLLocationManager类中不支持locationServicesEnabled属性了

2011-12-23 20:49 by 张智清, 4280 阅读, 收藏, 编辑
摘要: 在iOS3.X时代,我们通过测试定位管理器的locationServicesEnabled属性来检查用户是否已经启用Core Location。用户也可以从Settings应用程序的General->Location Services选择关闭此功能。而在iOS4.0中,是用locationServicesEnabled类方法来替代的。iOS3.0中检测设备是否可以定位服务的代码一般为:CLLocationManager *manager = [[CLLocationManager alloc] init];if(manager.locationServicesEnabled == NO) 阅读全文

iOS5版本中定制用户界面的代码片段(一)

2011-12-14 20:04 by 张智清, 2444 阅读, 收藏, 编辑
摘要: 在iOS5推出之前,要实现标准界面的定制化设计,对于开发者来说不是那么简单的。尽管创建drawRect的子类或覆盖drawRect类是个不错的办法,但仍是项艰巨的任务。 iOS5给我们带来了众多新API,其中有些可以让开发者轻松定制不同UIKit界面控制元素的外观。譬如: 阅读全文

Xcode4.2开发入门之一些变化(三)

2011-12-05 22:15 by 张智清, 1246 阅读, 收藏, 编辑
摘要: 4. UIGestureRecognizer使用更方便,居然可视化。 在UIGestureRecognizers之前的时代,如果想要检测一个手势,如滑过(swipe),你不得不在UIView视图内对每个touch动作注册通知,如touchesBegan,touchesMoves,touchesEnded。程序员要编写相近的代码来检测各个touches动作,导致微妙的错误和应用程序之间的不一致。 在iOS3.0,Apple开始引入新的UIGestureRecognizer类来补救。这些类提供检测诸如taps,pinches,rotations,swipes,pans和long presse... 阅读全文

使用NSOperation和NSOperationQueue启动多线程开发应用

2011-12-04 10:16 by 张智清, 4535 阅读, 收藏, 编辑
摘要: Apple从os x10.5在多线程应用的开发上有了很多改进,NSThread的引入使得开发多线程应用程序变得容易多了,尤其是引入了两个全新的类:NSOperation和NSOperationQueue。NSOperation对象类似java.lang.Runnable接口,也被设计为可扩展的,而且只有一个需要重写的方法。这就是-(void)main。 使用NSOperation的最简单的方式就是把一个NSOperation对象加入到NSOperationQueue队列中,一旦这个对象被加入到队列,队列就开始处理这个对象,直到这个对象的所有操作完成,然后它被队列释放。下面示例:使用一个获取网页,并对其解析的线程NSXMLDocument,最后将解析得到的NSXMLDocument再返回给主线程。 阅读全文

转:iphone网络编程总结二

2011-12-03 19:37 by 张智清, 257 阅读, 收藏, 编辑
摘要: 二、使用NSConnection下载数据 1. 创建NSConnection对象,设置委托对象 阅读全文

转:关于iOS5+XCode4.2环境下iPhone3G和3Gs+iOS4.2.1不能调试的问题解决方案整理。

2011-12-02 11:45 by 张智清, 996 阅读, 收藏, 编辑
摘要: 由于本人是iPhone3G老手机,固件只能升级到4.2.1。因此为了在新升级的xCode4.2+iOS5.0能够正常真机调试,所以在网络上搜索到这篇文章,得到了帮助。特摘录以备不时之需。(http://www.cocoachina.com/bbs/read.php?tid=79860) 1.改target的”Build Setting“中的Architecture域下的Architectures为”armv6 armv7“ 2.再改其中valid architecture为armv6 armv7 3.改iOS Deployment Target为iOS4.2 4,如果plist中有require device capabilities这一项就删掉,没有就算了。 阅读全文

转:iphone网络编程总结一

2011-11-30 20:24 by 张智清, 1402 阅读, 收藏, 编辑
摘要: 一、确认网络环境3G/WiFi 1). 要在应用程序中使用Reachability,首先要完成以下两步骤: 1.1 添加源文件:将Reachability.h和Reachability.m拷贝到你工程中。 1.2 添加必要框架:将SystemConfiguration.framework添加到工程项目中。 阅读全文

Xcode4.2开发入门之一些变化(二)

2011-11-26 21:17 by 张智清, 4776 阅读, 收藏, 编辑
摘要: 如何从NIB/XIB迁移到StoryBoard,有些什么改变? ViewController不需要NIB/XIB文件,连接Outlet和Action的操作都可以在StoryBoard上完成。 孤立View(独立于ViewController的View)是不能出现在StoryBoard里,所有View必须通过ViewController来管理。(这样,StoryBoard更像是Controller对象的容器,而不是View对象的容器,以前NIB/XIB倒显得可以视为View对象的容器) ViewController之间的过渡代码不需要了,用StoryBoard的Segue直接可视化连接不同的ViewController。 UIWindow对象的作用被进一步淡化,在StoryBoard图上没有体现出AppDelegate对象——因为它本来就不应该来处理界面View的。 代码编写要严格遵守MVC设计模式,才能用好StoryBoard来高效开发程序。 阅读全文

转:iPhone 网络连接检测(Wifi,3G,Edge)代码之一

2011-11-26 11:12 by 张智清, 537 阅读, 收藏, 编辑
摘要: 这个类可以用来检测用户是否连接到internet,只有一个方法,返回YES或NO。功能类似Reachability。 阅读全文

Xcode4.2 iOS5编译低于SDK4.3程序的方法

2011-11-25 17:30 by 张智清, 853 阅读, 收藏, 编辑
摘要: 在iOS5系统下有时考虑到程序的兼容性,我们会选择SDK低于4.3来编译,但在Xcode4.2中会出现如下错误:warning:iPhone apps with a deployment target lower than 4.3 should include an armv6 architecture(current IPHONEOS_DEPLOYMENT_TARGET = "4.0",ARCHS = "armv7").由google找到的一篇相应的解决之道:在Target的Build Setting标签栏下设置:找到Architectures,然后通 阅读全文

xcode 4.2 不再支持 Window-Based Application 的解决办法(转载)

2011-11-24 11:58 by 张智清, 2272 阅读, 收藏, 编辑
摘要: XCode升级到了4.2版本,然后在创建项目时,发现以前的Window BasedApplication没有了,要创建新的项目往往选用的模板是"EmptyProject"。但是创建完之后,项目中不再有MainWindow.xib文件了,不过我们可以自己添加这个文件,从而构造出Window-basedApplication。 阅读全文

记录园子里的一篇有关CALayer与UIView的关系

2011-11-15 12:00 by 张智清, 9561 阅读, 收藏, 编辑
摘要: CALayer属于Core Animation部分的内容,比较重要而不太好理解。以下是园子中看到的一篇文章的摘录: 1. UIView是iOS系统中界面元素的基础,所有的界面元素都是继承自它。它本身完全是由CoreAnimation来实现的。它真正的绘图部分,是由一个CALayer类来管理。UIView本身更像是一个CALayer的管理器,访问它的跟绘图和跟坐标有关的属性,例如frame,bounds等,实际上内部都是在访问它所包含的CALayer的相关属性。 2. UIView有个重要属性layer,可以返回它的主CALayer实例。UIView的layerClass方法,可以返回主layer所使用的类,UIView的子类可以通过重载这个方法,来让UIView使用不同的CALayer来显示。代码示例: 阅读全文

SDWebImage一个可管理远程图片加载的类库

2011-11-12 13:34 by 张智清, 12919 阅读, 收藏, 编辑
摘要: SDWebImage托管在github上。https://github.com/rs/SDWebImage这个类库提供一个UIImageView类别以支持加载来自网络的远程图片。具有缓存管理、异步下载、同一个URL下载次数控制和优化等特征。使用示范的代码:UITableView使用UIImageView+WebCache类(基本应用,UIImageView的一个category)前提#import导入UIImageView+WebCache.h文件,然后在tableview的cellForRowAtIndexPath:方法下: 1 - (UITableViewCell *)tableView: 阅读全文

UITextView控件的用法详解

2011-11-10 20:35 by 张智清, 33310 阅读, 收藏, 编辑
摘要: UITextView控件最常见的问题就是:“如何关闭键盘?”。是没有内置方法可以自动解决的。当用户结束对UITextView内容编辑时,键盘就应该消失。 阅读全文

添加TapkuLibrary框架到Xcode4工程项目中

2011-11-09 22:19 by 张智清, 1537 阅读, 收藏, 编辑
摘要: iOS开源框架Tapku下载地址:https://github.com/devinross/tapkulibrary.git1.创建你的工程项目。2.将Tapku框架中src目录下的“TapkuLibrary.xcodeproj”文件拖动到工程文件列表中的Frameworks目录下。“TapkuLibrary.bundle”文件(里面包含所需要的图片等资源)拖动到工程文件列表的SupportingFiles下。(最好是用‘File’ 菜单中“Add files to project”命令来操作)在出现的添加文件窗口中,选择不copy,并且选择“Create Folder References… 阅读全文

借助于开源框架AFOpenFlow来实现CoverFlow

2011-11-08 21:34 by 张智清, 1096 阅读, 收藏, 编辑
摘要: 在iPhone的SDK中有个UICoverFlowLayer类,可以用来实现CoverFlow效果。不过遗憾的是,该类属于私有API(嘿,苹果把好东西留给自己玩…...)我们无法使用该类。不过我们借助于开源框架AFOpenFlow来实现。 首先,需要在项目中添加OpenFlow开源框架([http://apparentlogic.com/openflow/]),并添加需要显示的图片。 阅读全文

iphone开发中九宫格的界面布局的实现

2011-11-07 14:37 by 张智清, 2980 阅读, 收藏, 编辑
摘要: 九宫格是一种比较古老的设计,它最基本的表现其实就像是一个三行三列的表格。如何在iPhone中实现类似下图九宫格的效果呢? 阅读全文

视图篇——表格视图UITableView及控制器UITableViewController

2011-11-06 19:23 by 张智清, 10183 阅读, 收藏, 编辑
摘要: UITableViewController类继承自UIViewController类,极大地简化了创建UITableView的过程。 UITableViewController负责处理表格布局,它创建一个标准的UIViewController并使用一个UITableView对它进行填充,设置UIViewController的窗体以支持任意导航栏或工具栏。可以通过tableView实例变量访问表格视图。 重要提示:手工代码创建UITableViewController的子类时,如果定义loadView方法,则确保调用其超类的实现[super loadView]。若是使用IB创建UITableViewController,则不必向loadView添加任何调用。 阅读全文
点击右上角即可分享
微信分享提示