iphone
文章平均质量分 64
CaryaLiu
关注移动互联网,iOS开发者
展开
-
objective-c 单例模式Singleton的实现
static ClubSession *_singletonInstance = nil;+ (ClubSession *)current{ @synchronized(self) { if (_singletonInstance == nil) { _singletonInstance = [[ClubSession alloc] i原创 2012-06-05 23:04:33 · 1279 阅读 · 1 评论 -
Blocks和Variables
译自:Blocks and Variables翻译不不到位之处,请指正,建议点击上面链接看苹果官网介绍。本文描述的是Blocks和Variables之间的交互,包括内存管理部分。1. 变量类型在block对象的函数体中,变量可能会以5中不同的方式做处理。你可以引用三种标准类型的变量:。全局变量,包括静态的本地变量。全局函数(which aren’t technicall翻译 2012-08-19 23:53:42 · 857 阅读 · 0 评论 -
layoutSubviews在何时调用
原文:When does layoutSubviews get called?It’s important to optimize any UIView layoutSubviews method you create, as it can be frequently called, and has the potential for creating recursion (trigg转载 2012-08-29 22:13:59 · 1923 阅读 · 0 评论 -
声明和创建blocks
译自:Declaring and Creating Blocks1. 声明Block引用block变量保留了对blocks的引用。声明block同声明一个函数指针的语法相似,只需要使用 ^ 替换为 *,block类型能够同C类型系统中其他类型交互,下面的都是有效的block变量声明:void (^blockReturningVoidWithVoidArgument)(voi翻译 2012-08-19 15:35:39 · 1078 阅读 · 0 评论 -
Blocks 概念预览
Blocks概念预览:Conceptual OverviewBlock对象提供了写ad hoc function body的方法,正如C 及 C的派生语言C++和Objective-c等一样。在其他的语言及环境中,块对象有时也称作 闭包。这里它通常俗称为 "blocks", 否则很容易同标准 C 语言中的代码块相混淆。1. Block的功能block是内联的代码集合:。同函数一样有翻译 2012-08-19 14:17:09 · 792 阅读 · 0 评论 -
iPhone开发之确认网络环境
开发网络应用程序的时候,需要确认网络环境及连接情况等信息。如果没有处理它们,是不会通过Apple的审查的。1. 添加源文件及FrameworkApple 的官方例子 Reachability 中介绍了获取、检测设备当前网络状态的方法。在你的程序中,需要把该工程中的Reachability.h 和 Reachability.m 拷贝到你的工程中,同时需要把 SystemConfigu原创 2012-07-29 17:59:17 · 6175 阅读 · 1 评论 -
设置UISearchBar的背景图片
在ios 5.0 后有设置UISearchBar的背景图片的接口,可如下设置其背景://search is a defined UISearchBarUIImage *img = [[UIImage imageNamed:@"nav_bar.png"] stretchableImageWithLeftCapWidth:1 topCapHeight:0];[search setBackgro原创 2012-07-28 10:08:48 · 3605 阅读 · 2 评论 -
ios开发之确定设备当前的方向
有时候我们需要判断应用程序当前的方向,可以通过获取设备当前的方向来确定,从下面的定义你可以看到UIInterfaceOrientation的定义是通过UIDeviceOrientation来完成的,有两个概念:UIDeviceOrientation:硬件设备的方向UIInterfaceOrientation:应用程序界面的方向UIDeviceOrientation的定义如下:原创 2012-08-08 18:12:40 · 8775 阅读 · 0 评论 -
ios开发之View属性hidden, opaque, alpha的区别
1. @property(nonatomic) CGFloat alpha;The value of this property is a floating-point number in the range 0.0 to 1.0, where 0.0 represents totally transparent and 1.0 represents totally opaque.This v原创 2012-08-07 10:27:16 · 9338 阅读 · 0 评论 -
ios开发之NSUserDefaults
1. 什么是 NSUserDefaults?NSUserDefaults 提供了同默认系统交互的编程接口,默认系统允许应用程序根据用户的偏好进行行为设置。例如,你可以允许用户选择应用程序显示的计量单位是什么,或者文档自动保存的频率。应用程序通过对一系列的参数进行赋值然后存储在用户的默认数据库中来记录诸如此类的偏好。这些参数经常用来决定应用程序启动时的默认状态或者默认操作。运行时,你使用原创 2012-07-29 22:36:49 · 3299 阅读 · 0 评论 -
关于NavigationBar的返回按钮
The navigation controller checks the following things when a new view controller is pushed:1. If the new top-level view controller has a custom left bar button item, that item is displayed. To s原创 2012-06-18 09:46:13 · 1000 阅读 · 0 评论 -
使用blocks
译自:Using Blocks翻译不不到位之处,请指正,建议点击上面链接看苹果官网介绍。1. 调用block如果你声明了一个block变量,你可以像使用函数一样使用它,如下面两个例子所示:int (^oneFrom)(int) = ^(int anInt) { return anInt - 1;}; printf("1 from 10 is %d", oneF翻译 2012-08-21 23:49:11 · 1103 阅读 · 0 评论 -
Xcode代码颜色高亮及代码智能补全失效的解决方法
转自:http://blog.csdn.net/guoguoljg/article/details/8477551今天遇到了这种情况,网上搜索了一下,记录如下:1: 删除Derived Data . Window->Organizar->Projects, 然后点击Delete删除Derived Data,关闭Xcode重新打开工程.2: 包含头文件问题,如果引用了buil转载 2013-04-18 09:09:39 · 5204 阅读 · 0 评论 -
根据Debug和Release状态的变化来控制日志输出
转自:http://www.cocoachina.com/macdev/tips/2011/0506/2838.html我们平时在开发应用的时候,经常会用到 NSLog 来调试我们的程序,而随着项目越来越大,这些用于调试的日志输出就会变得很难管理。 发布正式版的时候一定要屏蔽掉所有后台输出,因为这些输出还是比较消耗系统资源的。 往往到了这个时候,我们不得不去一行一行的找到 NSLog 调用,然转载 2013-04-16 09:19:50 · 1035 阅读 · 0 评论 -
再谈ViewController的生命周期
对于一个ViewController对象,对其view的管理分为两个部分:load and unload cycles,当你的应用程序需要ViewController的view并且其view不在内存中时,开始load cycle。这时,ViewController将view加载到内存中,并且将该view存储到其属性view中。当应用程序收到内存警告时,ViewController可能会unlo原创 2012-06-11 00:20:42 · 1938 阅读 · 1 评论 -
ios开发之delegate那点事儿
首先,让我们看看为什么要使用delegate。一个典型的ios应用程序会有各种类型的对象:windows,tables,buttons,input boxes等等。在一个特定的应用程序中,你会让每个对象做特定的事情。比如说当用户点击一个按钮的时候,会执行一个特定的操作或者使用一个table显示特定的数据。每个对象实例会有处理特定的事情。比如说我们有一个UITableView的实例,我们可能原创 2012-06-09 22:32:25 · 4386 阅读 · 0 评论 -
计算CoreText Line Height
转载:http://lists.apple.com/archives/quartz-dev/2008/Mar/msg00079.html转载 2012-09-29 08:51:52 · 1261 阅读 · 0 评论 -
CoreText基础-排版必修课
转载:http://www.dreamingwish.com/dream-2011/coretext-base-layout-compulsory.html转载 2012-09-29 08:31:12 · 748 阅读 · 0 评论 -
CoreText基础-字体必修课
转载:http://www.dreamingwish.com/dream-2011/coretext-ji-chu-font-basis.html转载 2012-09-29 08:30:24 · 720 阅读 · 0 评论 -
给UIView加阴影,圆角
转载一篇文章:http://bynomial.com/blog/?p=52转载 2012-09-27 14:39:59 · 758 阅读 · 0 评论 -
ios开发之检测UIScrollView的滚动方向
有时候我们需要检测当前UIScrollView的滑动方向来做出相应的处理,可以借助UIScrollView的delegate函数来实现, 下面的例子可以检测到UIScrollview当前是向上滑动还是向下滑动: int _lastPosition; //A variable define in headfile- (void)scrollViewDidScroll:(UIScro原创 2012-08-25 17:26:18 · 24596 阅读 · 0 评论 -
ios开发之 开始使用blocks
初探Blocks:Getting Started with Blocks翻译不不到位之处,请指正,建议点击上面链接看苹果官网介绍。下面的部分将以具体的实例帮助你开始使用Blocks1. 申明和使用Blocks使用 ^ 操作符声明一个block变量并且指示block的开始,block的函数体包含在一对 {} 中,如下面的例子所示,同C语言一样,最后的 ; 指示声明的结束。翻译 2012-08-19 09:44:48 · 1174 阅读 · 0 评论 -
ios开发之streams概览
译自:Cocoa Streams流是位数据通过通信路径的连续传送序列。它是单向的,从一个应用程序的角度,流可以是输入流(读操作流)或者输出流(写操作流),除了基于文件的流之外,其余的都是non-seekable的。一旦流数据被提供或者被使用,数据就不能够从流中获取到。Cocoa包括三种与流有关的类:NSStream,NSInputStream,NSOutputStream. NSS翻译 2012-06-14 10:51:29 · 5866 阅读 · 0 评论 -
ios开发之处理流错误
译自:Handling Stream Errors通常情况下,特别是与sockets相关联时,streams会遇到错误从而不能进一步处理stream data。一般情况下,错误提示了在流的一端缺失了东西,比如说远程主机的crash,正在使用的文件被删除等等。在此情况下,客户端能够做的就是将这些错误提示给用户,尽管一个stream object在上报错误之后,在它关闭之前仍然可以查询它的状态翻译 2012-06-13 16:38:27 · 3733 阅读 · 0 评论 -
ios开发之向输出流写数据
译自:Writing To Output Streams使用NSOutputStream实例需要以下几个步骤:1,使用存储写入数据的存储库创建和初始化一个NSOutputSteam实例,并且设置它的delegate。2,将这个流对象布置在一个runloop上并且open the stream。3,处理流对象向其delegate发送的事件消息。4,如果流对象向内存中写入了数据翻译 2012-06-13 11:54:12 · 7146 阅读 · 3 评论 -
objective-c 日期和字符串的相互转换
#import @interface NSDate (StringAndDate)//fromatter:@"yyyy-MM-dd HH:mm" ; stringDate:@"2012-03-01 23:12"+ (NSDate *)getDateFromString:(NSString *)stringDate withFormatter:(NSString *)formatter;原创 2012-03-08 21:51:21 · 867 阅读 · 0 评论 -
objective-c处理图片缩放
- (UIImage *)scaleToSize:(UIImage *)img size:(CGSize)size{ // 创建一个bitmap的context // 并把它设置成为当前正在使用的context UIGraphicsBeginImageContext(size); // 绘制改变大小的图片 [img drawInRect:转载 2012-03-06 18:39:44 · 4292 阅读 · 0 评论 -
xcode4.2/xcode4.3 ios开发_离线阅读iPhone SDK文档
在使用Xcode进行iPhone编程时,有时需要参考iPhone SDK的文档,不过每次Option+Double Click后,Xcode都会试图连接Internet,进行在线读取。但是在Xcode升级到4.2之后,似乎参考iPhone SDK的时候需要登陆Apple ID, 如果没有开发者权限就不能够查看,这里我们可以将SDK文档下载到硬盘上,进行离线使用SDK文档。首先去Xcode->R转载 2012-02-11 15:17:10 · 1459 阅读 · 0 评论 -
ios5 中文键盘高度变高覆盖现有ui问题的解决方案(获取键盘高度的方法)
ios5之前,iphone上的键盘的高度是固定为216.0px高的,中文汉字的选择框是悬浮的,所以不少应用都将此高度来标注键盘的高度. 可是在ios5中,键盘布局变了,尤其是中文输入时,中文汉字选择框就固定在键盘上方,这样就使得原本与键盘紧密贴合的界面视图被中文汉字选择框给覆盖住了。一方面影响了界面的美观,另一方面,如果被覆盖的部分就是文本输入框的话,用户就无法看到输入的内容了。因此这个问题原创 2012-02-27 12:46:44 · 1804 阅读 · 0 评论 -
objective-c添加字体文件,使用字体文件字体
1 将字体文件 missyuan.ttf 加入xcode的Supporting Files文件中2 在 info.plist 文件中添加 键值 Fonts provided by application , Array 类型添加item missyuan.ttf , String类型3 使用 [UIFont fontWithName:@"missyuan" size:14.0f];原创 2012-02-24 22:53:37 · 2908 阅读 · 0 评论 -
点击屏幕任意位置隐藏虚拟键盘
转自:http://blog.csdn.net/xys289187120/article/details/6831917#在视图底部添加一个透明按钮,这里假定有一个textfield. 在编辑textField时会弹出虚拟键盘,现在通过添加的透明按钮在隐藏虚拟键盘。//创建一个隐藏的按钮backgroudButton=[[UIButton alloc] init];//让这转载 2012-02-24 19:01:21 · 2586 阅读 · 0 评论 -
画圆角图片的方法
1. 使用QuartzCore.framework添加QuartzCore.framework,导入头文件 #import [[imgView layer] setCornerRadius: 10]; [[imgView layer] setMasksToBounds:YES];2. 使用下面的方法:static void addRoundedRectTo原创 2012-02-24 13:54:46 · 1121 阅读 · 0 评论 -
Responder Objects and the Responder Chain
A responder object is an object that can respond to events and handle them. UIResponder is the base class for all responder objects, also known as, simply, responders. It defines the programmatic in转载 2012-02-23 09:26:26 · 904 阅读 · 0 评论 -
Xcode4.2添加framework
TARGETS->Build Phases->Link Binary With Libraries, 然后再点击左下角的加号添加framework原创 2012-02-21 16:24:00 · 849 阅读 · 0 评论 -
objective-c shallow- and deep-copy
转自:https://developer.apple.com/library/mac/#documentation/General/Conceptual/DevPedia-CocoaCore/ObjectCopying.htmlObject CopyingCopying an object creates a new object with the same class and prope转载 2012-03-15 23:47:17 · 1236 阅读 · 0 评论 -
ios开发之从输入流里读入数据
原文:Reading From Input Streamsios cocoa 编程,从NSInputStream中读入数据包括几个步骤:1.从数据源创建和初始化一个NSInputStream实例2.将输入流对象配置到一个run loop,open the stream3. 通过流对象的delegate函数处理事件4. 当所有数据读完,进行流对象的内存处理翻译 2012-06-07 00:21:27 · 14716 阅读 · 2 评论 -
ios开发之MVC
先看看下图吧:1. Model Object: 它封装了应用程序的数据和处理这些数据的一些基本操作。理想状态下,Model Object 所封装的数据及对这些数据的操作不应该与 View(用户操作) 有直接联系,应该尽可能的使Model Object 有高度的可重用性。也就是说,Model 这个分类不关心 View 以什么样的形式来显示数据,什么时候显示数据等等。2. View O原创 2012-06-09 10:04:54 · 1020 阅读 · 0 评论 -
兼容ios4及ios5的自定义navigationbar的rightBarButtonItem
if ([[[UIDevice currentDevice] systemVersion] intValue] >= 5) { //for ios5.* UIBarButtonItem *rbtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSearch t原创 2012-05-19 14:01:31 · 2443 阅读 · 0 评论 -
ios4及ios5下自定义NavigationBar的返回按钮
在ios4自定义导航栏的返回按钮,实际上自定义了其 leftBarButtonItem,这里为了便于重用,我定义了一个类:.h 文件#import @interface NavBackBarButtonItem : UIButton- (id)initWithTitle:(NSString *)title;@end.m 文件#import "NavBackBarBu原创 2012-05-19 13:49:50 · 6611 阅读 · 0 评论 -
兼容ios4的自定义NavigationBar的背景
在AppDelegate.m的文件中加入如下定义,覆盖NavigationBar的drawRect函数:@interface UINavigationBar (CustomBackgroud)- (void)drawRect:(CGRect)rect;@end@implementation UINavigationBar (CustomBackgroud)// iOS 4.*原创 2012-05-19 13:07:17 · 1629 阅读 · 0 评论