ios-屏幕适配(代码)
由于第一个项目中98%的界面都用到UITableView,所以适配仅判断此。知道手工敲代码的繁复,遂传一部分,如果有更优的方法,欢迎提出。
如下图,图中提到的宏定义是在prefix.pch预编绎文件里定义好的全局变量。
1 //设备判断 2 #define DEVICE_IS_IPHONE5 ([[UIScreen mainScreen] bounds].size.height == 568) 3 #define IOS7_OR_LATER ([[[UIDevice currentDevice] systemVersion] compare:@"7.0"] != NSOrderedAscending) 4 5 //设备Size 6 #define Screen_height [[UIScreen mainScreen] bounds].size.height 7 #define Screen_width [[UIScreen mainScreen] bounds].size.width 8 #define Page_height (IOS7_OR_LATER ? Screen_height : (Screen_height - 20)) 9 10 //appdele 11 #define AppDelegateObj [[UIApplication sharedApplication] delegate] 12 13 //通用高度 14 #define StatusHeight (IOS7_OR_LATER ? 20 : 0) //状态栏高度 15 #define TopBarHeight 44 //顶部导航高度 16 #define BottomBarHeight 47 //底部导航高度 17 18 //设置背景色 19 #define Screen_BackGround [UIColor colorWithRed:240.0/250 green:239.0/250 blue:245.0/250 alpha:1.0]
1 UITableView* tableView = nil; 2 if (IPHONE5) 3 { 4 if (sysio71) 5 { 6 tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT - StatusHeight - TopBarHeight) style:UITableViewStylePlain]; 7 }else if (sysio7) 8 { 9 tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT - StatusHeight - TopBarHeight) style:UITableViewStylePlain]; 10 } 11 else 12 tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT - StatusHeight - TopBarHeight - 20) style:UITableViewStylePlain]; 13 } 14 else 15 { 16 if (sysio71) 17 { 18 tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT - StatusHeight - TopBarHeight ) style:UITableViewStylePlain]; 19 } 20 else if (sysio7) 21 { 22 tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT - StatusHeight - TopBarHeight ) style:UITableViewStylePlain]; 23 } 24 else 25 tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT - StatusHeight - TopBarHeight - 20) style:UITableViewStylePlain]; 26 }