WEB开发网
开发学院手机开发iPhone 开发 iphone/ipad ios cocoa object-c 近期苹果UI部分小... 阅读

iphone/ipad ios cocoa object-c 近期苹果UI部分小结

 2010-12-19 07:19:42 来源:WEB开发网   
核心提示:ios ui 部分开发心得小结:1、界面操作:界面搭建布局由xib interface builder 完成就好,需要注意的是它的 view size->autoresizing 设置,iphone/ipad ios cocoa object-c 近期苹果UI部分小结,这会影响界面元素的布局排版,需要修改的控件就

ios ui 部分开发心得小结:

1、界面操作:界面搭建布局由xib interface builder 完成就好,需要注意的是它的 view size->autoresizing 设置,这会影响界面元素的布局排版。

需要修改的控件就可以在.h .m 文件里 增加IBOutlet定义 修饰,然后再在IB里绑定好,就可以直接在代码里修改控件了。不需要改动的控件,就无需再定义了。控件响应事件 将方法增加IBAction定义修饰,在IB里绑定好相应事件即可。当然,这些创建绑定操作在可直接在代码里完成。

2、view之间的关系: 要搞清楚各个view之间的关系,(superView subView ),其中比较麻烦的是涉及到坐标系转换的问题。

一个原则就是:按照当前函数所在的view来转换坐标系。如果当前函数a在view A 中,那么外部在调用函数a时,就需事先将point 转换为view A的point,

函数a执行完毕后,也得保证返回的point的坐标系为viewA的。按照此原则来做调用转换的话,就不容易在坐标系上出错了。如有特例的话,就可以在函数命名上指出其所属view 如:hitTestFrameByPointInDocumentView : (CGPoint) point

3、控件使用:查询ios的文档和例子是最好的学习资料,然后是stackoverflow等网站。注意有时需实现控件的delegate方法,类似于java的interface,抽象方法,我自己理解为回调函数。

4、其他常规的数据结构,数组、字典、列表等都大同小异,具体使用时去查就好了。

5、内存问题:注意在dealloc里记得释放实例变量的内存。写setter & getter使用 @property @synthesize 就可以了。

@property (nonatomic, retain) UIView* myView;

@property (nonatomic, assign) BOOL isFinished;

基本类型就不需声明为retain了(增加引用计数)。

在释放实例变量内存时,比较好的写法是:

-(void) dealloc

{

self.myView = nil;

[super dealloc];

}

此处的写法等价于

[myView release];

myView = nil;

使用 . 操作符,相当于调用myView的setter函数,可以查看setter的实现,其内部调用了release。

另外注意不能直接 写成 myView = nil; 这样的话并没有调用到release,会引起内存泄露。下述的内容有提到。

另外这个特点还值得注意,如使用self.xxx赋值时,会调用release 销毁实例。如果只是为了将指针赋空,则应该直接 xxx = nil;

1 2  下一页

Tags:iphone ipad ios

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接