ios 技巧

1若将一个view作为子视图添加到window中,则当设备的方向变换时,该视图不会随之变化,也就是所不会响应设备的方向变化事件。

如:“图片放大视图”,“报纸选择视图”...

要使其响应方向变化事件,最好是将该视图添加到一个视图中而不是window中。

2、通过Interface Builder创建的视图默认的背景色是白色的,

要使得该视图透明,可以将其背景色改为clearcolor

3、再viewcontrollerviewdidload方法中,self.view一直是nil的。

所以在viewdidload中使用[uiactionsheet showinview:self.view];就会使程序崩溃。

4、获取设备当前的放置方向,只要获取当前应用的状态条方向即可,如:

[self SetSubviewsframe:[[UIApplication sharedApplication] statusBarOrientation]];

5UIButton设置按钮图片的方式为:

[iButton setImage:[UIImage imageNamed:@"a.png"] forState:UIControlStateNormal];

而不能像下面这种方式:iButton.imageView.image = [UIImage imageNamed:@"a.png"];

6、对一个视图使用动画时,若该视图包含子视图(如按钮,图片等内容),要使得动画进行时子视图不变形,可添加如下代码:

[self setClipsToBounds:YES];//这里selfview.

7、属于工程resource中的内容都是只读的,不能修改。

比如在我的项目中使用读取resource下的plist文件的内容,能获取到内容;

但将内容写进去就会失败,读出来仍然是原来的内容。

解决方法:

如果要写入plist,文件路径的获取就不能用

NSString *plistpath=[[NSBundle mainBundle]pathForResource:@"member" ofType:@"plist"];”(我原本这么写的,得到的路径是resource文件夹下的plist文件)。

正确的做法是将要保存的plist文件放在一个sandbox沙盒里,文件路径这样

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory NSUserDomainMask YES);

NSString *documentsDirectory = [paths objectAtIndex:0];

NSString* sandBoxpath = [NSString stringWithFormat:@"%@/%@"documentsDirectory@"member.plist"];

我这样写入后,并且再读出,就成功了。

8、

1)如果对性能要求高,慎用Interface Build

2copy是创建,retain是引用;

3)加载到NSArray/NSMutableArray里的对象,不需要负责release

4UIApplicationDelegate负责应用程序的生命周期,而UIViewController负责View的生命周期;

9如果表格是在UIViewController里并且tabledelegateViewController那么table必须是viewcontrollerview,而不是能是viewControllerview的一个子视图。否则在表格编辑的时候就不会触发willBeginEditingRowAtIndexPath,以及didEndEditingRowAtIndexPath等方法。

转载至:项目中的技巧经验汇总

2011-06-16

原文地址:https://www.cnblogs.com/chenfulai/p/2127161.html