19 2011-7
构造、添加View并在View之间切换是IPhone开发最常见的问题。一般来说,要构造一个View需要以下几个步骤:
1.
添加新的Controller类型。具体方法是File–>New File–>Cocoa Touch Class–>UIViewController subclass。
2.
添加xib文件。具体方法是File–>New File–>User Interface–>View Xib 。
3.
在新的xib文件中制定需要使用的Controller。具体方法是用IBuilder打开对应的xib文件,选择File’s Owner,将其Class Identity –> Class 属性改成对应Controller。而后,将File’s Owner的”view” Outlet连接到View对象(按住Command,将File’s Owner)拖到View上,放开,选”view”。
...
19 2011-7
利用协议实现回调
实现的代码如下:
定义协议:
#import
@protocol NoteDelegate
//回调函数
-(void)messageCallBack:(NSString *)string;
@end
调用协议:
#import
#import "NoteDelegate.h"
@interface ManagerMessage : NSObject {
...
19 2011-7
当你为iPhone开发程序的时候,你可能会用到XCode提供的项目模板。这些模板里有一个叫做Tab Bar Application的,可以帮助你快速创建一个基于Tab Bar的程序,但是默认生成的模板仅仅支持竖屏显示。那么如何才能做一个这样的程序,既支持横屏也支持竖屏呢?本文我们会探讨这个问题。
首先在XCode中创建一个新的Tab Bar程序。
1 按Command+Shift+N,在iPhone OS中选择Tab Bar Application,点击Choose…
2 为项目写一个名字,比如Tab Test
...
19 2011-7
界面看起来还比较粗糙,这里只是说明一下原理,基本思路是这样的:1. 创建一个RootViewController,它作为delegate加载的第一个controller
2. RootViewController的上半部分加载TabbarController,下半部分是自己画的控件,它用来控制Tabbar Controller加载哪个controller的
3. 把Tabbar controller的Tabbar给hide掉
4. RootViewController的下半部分是自己画的Tabbar,想怎么画就怎么画
...
19 2011-7
通常使用的Navigation Item中有backBarButtonItem/leftBarButtonItem/rightBarButtonItem三个按键,其中backBarButtonItem为只读,不能修改,其他两个都可以自由修改.不但可以防止button,还可以用自定义的view来填充,比方说想在导航栏右侧防止两个按钮,如图所示
代码如下:
UIView *rightBarView = [[UIView alloc]initWithFrame:CGRectMake(618, 0, 150, 44)];
...
19 2011-7
iOS设备现在有三种不同的分辨率:iPhone 320x480、iPhone 4 640x960、iPad 768x1024。以前程序的启动画面(图片)只要准备一个 Default.png 就可以了,但是现在变得复杂多了。下面就是 CocoaChina 会员做得总结
如果一个程序,既支持iPhone又支持iPad,那么它需要包含下面几个图片:
Default-Portrait.png iPad专用竖向启动画面 768x1024或者768x1004
Default-Landscape.png iPad专用横向启动画面 1024x768或者1024x748
...
19 2011-7
本段代码由 CocoaChina 会员“jinwyp”分享,能检测 iOS 设备多点触控上限,并能以显示纯色的方式检查屏幕是否有坏点。
import flash.events.TouchEvent;
import flash.events.MouseEvent;
import flash.ui.Multitouch;
import flash.ui.MultitouchInputMode;
import flash.display.Sprite;
Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
...
19 2011-7
- (NSString *)URLEncodedString:(NSString *)string{
NSString *result = (NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(CFStringRef)string,NULL,CFSTR("!*'();:@&=+$,/?%#[]"),kCFStringEncodingUTF8);
...
19 2011-7
利用 iPhone、iPad 自带的 GPS 信息可以获得当前位置坐标,但直接高速用户坐标是不行的。CocoaChina 会员"laigb"分享了通过 GPS 信息获取当前所在城市名的代码,希望对苹果开发者有所帮助。
- (void)startedReverseGeoderWithLatitude:(double)latitude longitude:(double)longitude{
CLLocationCoordinate2D coordinate2D;
coordinate2D.longitude = longitude;
...
19 2011-7
想在应用里保存帐号、密码等信息的话,直接存到 plist 里显然是不负责任的,自己折腾加密既麻烦又不能保证不被反编译破解。实际上苹果 iOS 和 Mac OS X 系统自带了一套敏感信息保存方案:"钥匙串" (Keychain)。
用原生的 Security.framework 就可以实现钥匙串的访问、读写。但是只能在真机上进行,模拟器会出错。在 Github 上有个封装的非常好的类来实现这个功能,让你既能在模拟器又能在真机上访问钥匙串。类的地址: http://github.com/ldandersen/scifihifi-iphone/tree/master/security
...