1、若将一个view作为子视图添加到window中,则当设备的方向变换时,该视图不会随之变化,也就是所不会响应设备的方向变化事件。
如:“图片放大视图”,“报纸选择视图”...
要使其响应方向变化事件,最好是将该视图添加到一个视图中而不是window中。
2、通过Interface Builder创建的视图默认的背景色是白色的,
要使得该视图透明,可以将其背景色改为clearcolor。
3、再viewcontroller的viewdidload方法中,self.view一直是nil的。
所以在viewdidload中使用[uiactionsheet showinview:self.view];就会使程序崩溃。
4、获取设备当前的放置方向,只要获取当前应用的状态条方向即可,如:
[self SetSubviewsframe:[[UIApplication sharedApplication] statusBarOrientation]];
5、UIButton设置按钮图片的方式为:
[iButton setImage:[UIImage imageNamed:@"a.png"] forState:UIControlStateNormal];
而不能像下面这种方式:iButton.imageView.image = [UIImage imageNamed:@"a.png"];
6、对一个视图使用动画时,若该视图包含子视图(如按钮,图片等内容),要使得动画进行时子视图不变形,可添加如下代码:
[self setClipsToBounds:YES];//这里self是view.
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;
2)copy是创建,retain是引用;
3)加载到NSArray/NSMutableArray里的对象,不需要负责release;
4)UIApplicationDelegate负责应用程序的生命周期,而UIViewController负责View的生命周期;
9、如果表格是在UIViewController里并且table的delegate是ViewController那么table必须是viewcontroller的view,而不是能是viewController的view的一个子视图。否则在表格编辑的时候就不会触发willBeginEditingRowAtIndexPath,以及didEndEditingRowAtIndexPath等方法。
转载至:项目中的技巧经验汇总
2011-06-16