待续。。。
1、启动页面图片
大小:640*1136,添加后默认命名为Default-568h@2x.png.图片适配,对于高清的1136图片,命名同样使用@2x,只是改名图片名称,如image-1-os5.png,image-1-os5@2x.png,在代码中判断iphone5?(image-1):(image-1-os5),没有@22x这种
#define iphone5 ([UIScreen instancesRespondToSelector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640,1136),[[UIScreen mainScreen] currentMode].size):NO)
2、iphone5的View为568,减去Nav(44)+任务栏(20),为504,相比iphone4s及以前版本的480,减去Nav+任务栏,为416,高出88(差别)。
修改代码:(1)iphone5中,需要修改的值就是y、height,根据具体的差别。简单的修改View's heght:
view.frame = CGRectMake(0,0,320,416+(iphone5?88:0))
(2) Controller初始化:
AViewController *aViewController = [[AViewController alloc] initWithNibName:(iphone5?@"AViewController-5":@"AViewController") bundle:nil];
3、XIB修改:
(1)View、TableView等界面,直接修改Autosizing属性,使其上下拉伸。
(2)部分无法修改的View(如view内增加了2个固定大小的view),需要创建一个新的XIB文件(假设AController-5.xib),添加View并在Simulated Metrics中设置Size为Retaina4Full Screen,然后根据固定的位置重新布局,再使用第3部分(2)。
4、其余部分:
(1)UITableView默认分组表背景如果需要改为白色,需要去掉BackgroundView.
(2) 旋转需要修改CGRect的X。
(3)passbook部分介绍。
(4)模拟器home快捷键:shift+command+h.
(5) 浮动的一些帅选项,尽量使用Nav的push打开,避免修改尺寸。
5、 UITableView
(1) 在使用背景色的时候,自带系统默认颜色:“Group Table View Background Color”消失。需要换别的颜色
6、Retina 4 launch image
更新xcode适配新系统:ios4支持Retain需要@2x的图,ios5不支持udid
添加Retina 4 launch image,运行工程的时候主动提示您。直接add就会默认添加一张Default@2x.png的黑图,不添加的话,程序运行起来下面会有黑边儿。
7、关于多个Target
我们知道添加图片的时候,灰指甲加到工具里,这时候如果有多个Target的时候,直接Default-568h@2x.png文件,拖拽到相应的“Copy Bundle Resources”里就好了。
8、xcode4.5不再支持armv6即:ios4.3.3以下系统。
9、判断iphone的代码
#define iphone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size):NO)
用到的时候直接 if (iphone5){xxoo}
10、关于xib自适应的问题
默认的话,如果你的界面上包含scrollview/tableView的话,这个界面基本上是不用改的,应为中间部分会自动拉还说呢。如果不包含这个两个全屏的控件的话,怕是要自己再添加一个专门针对iphone5的xib了。办法是、新建一个xib文件,将里面的view的size设置成Retina 4 Full Screen就可以了,
11、关于屏幕旋转
ios取消了一个api,增加了两个api,但是这一去一加满足不了我的情况:例如应用的所有的界面都是竖屏,只有一个屏幕是横屏。
首先:这个横屏的xib里面的biew就是横的
其次:屏幕适应只支持横屏
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{
return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}
第三:在这个view是present出来的
第四:viewDidLoad里影藏状态栏
- (void)viewDidLoad
{
if (IOSSystemVersion >= 5.0){
//5.0及以后,不整这个,界面错位,整这个带动画容易看到一个白头
[[UIApplication sharedApplication] setStatusBarHidden:YES];
}
}
第五:viewWillApear自己将view旋转90度
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[UIView animateWithDuration:0.0f animations:^([self.view setTransform:CGAffineTransforMakeRotation(M_PI/2)];
if (iphone5) {
self.view,frame = CGRectMake(0,0,568,320);
} else {
self.view.frame = CGRectMake(0,0,480,320);
}
)];
}