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]
View Code

 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     }
View Code  
原文地址:https://www.cnblogs.com/xm5mao/p/3967074.html