一、AppDelegate.h写法

#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>@property (strong, nonatomic) UIWindow *window;
//----------------------------开始------------------------------//@property float autoSizeScaleX; @property float autoSizeScaleY;+ (void)iPhoneScreenAdaptation:(UIView *)allView;
//----------------------------结束------------------------------//@end 

二、AppDelegate.m写法

#import "AppDelegate.h" #import "ViewController.h"//----------------------------开始------------------------------//#define ScreenHeight [[UIScreen mainScreen] bounds].size.height#define ScreenWidth [[UIScreen mainScreen] bounds].size.width
//----------------------------结束------------------------------//@interface AppDelegate () <pre name="code" class="objc">
@end@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//----------------------------开始------------------------------//     AppDelegate *myDelegate = [[UIApplication sharedApplication] delegate]; if (ScreenHeight >480) {   myDelegate.autoSizeScaleX = ScreenWidth/320;    myDelegate.autoSizeScaleY = ScreenHeight/568;    }else{      myDelegate.autoSizeScaleX = 1.0;  myDelegate.autoSizeScaleY = 1.0;  }
//----------------------------结束------------------------------//self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];self.window.backgroundColor = [UIColor whiteColor];ViewController *view = [[ViewController alloc] init];UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:view];self.window.rootViewController = nav;[self.window makeKeyAndVisible]; <pre name="code" class="objc">
return YES;} //----------------------------开始------------------------------//+ (void)iPhoneScreenAdaptation:(UIView *)allView {for (UIView *temp in allView.subviews) {temp.frame = CGRectMake1(temp.frame.origin.x, temp.frame.origin.y, temp.frame.size.width, temp.frame.size.height);for (UIView *temp1 in temp.subviews) {temp1.frame = CGRectMake1(temp1.frame.origin.x, temp1.frame.origin.y, temp1.frame.size.width, temp1.frame.size.height);}     } }  //修改CGRectMakeCG_INLINE CGRectCGRectMake1(CGFloat x, CGFloat y, CGFloat width, CGFloat height) {AppDelegate *myDelegate = [[UIApplication sharedApplication] delegate];CGRect rect;rect.origin.x = x * myDelegate.autoSizeScaleX;rect.origin.y = y * myDelegate.autoSizeScaleY;rect.size.width = width * myDelegate.autoSizeScaleX;rect.size.height = height * myDelegate.autoSizeScaleY;return rect;}
//----------------------------结束------------------------------//

三、ViewController.m写法

 #import "ViewController.h"#import "AppDelegate.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];[self makeUI];     //注意:布局在前,调用方法在后[AppDelegate iPhoneScreenAdaptation:self.view];}-(void)makeUI {UILabel *lab = [[UILabel alloc] initWithFrame:CGRectMake(20, 64, 280, 44)];lab.backgroundColor = [UIColor redColor];[self.view addSubview:lab];UILabel *lab1 = [[UILabel alloc] initWithFrame:CGRectMake(10, 64 +44+10, 300, 44)];lab1.backgroundColor = [UIColor greenColor];[self.view addSubview:lab1];}

苹果手机适配手写代码相关推荐

  1. IOS纯手写代码支持旋屏

    2019独角兽企业重金招聘Python工程师标准>>> 不用ib纯手写代码实现旋屏效果,xcode4.6.3,今天试了一下,可以做到,但是代码量会增加,基本思路是:在 - (void ...

  2. 揭秘 ClownFish 比手写代码还快的原因

    说明:本文的第一版由于反对人数较多(推荐/反对数量是:23 / 17), 我在8月20日删除了博文内容,只留下一段简单的内容. 既然分享技术也引来这么多的反对,那我就不分享了. 如果希望知道我的优化方 ...

  3. python是如何实现进程池和线程池的_高并发:线程、线程锁与线程池(精华),手写代码实现线程池...

    前文: 单线程--多线程的开启--线程锁--线程同步工具--手写连接池--连接池工具类. 一.线程 1.线程的概念 2.线程与进程的关系 3.定义: 区别:如上!!! 4.wait()和sleep() ...

  4. python在哪里写代码比较适合-程序员面试被要求手写代码,你与顶级程序员的差别在哪?...

    原标题:程序员面试被要求手写代码,你与顶级程序员的差别在哪? 前言: Python现在非常火,语法简单而且功能强大,很多同学都想学Python! 所以小的给各位看官们准备了收藏已久的视频教程分享给大家 ...

  5. 【深度学习】深度学习手写代码汇总(建议收藏,面试用)

    这几天一些同学在面试的时候,遇到了一些手写代码的题,因为之前都没有准备到,所以基本上在写的时候都有点蒙. 今天我就把一些常见的考题给大家整理下,这些题也是我之前准备面试的时候整理的,很多的代码都是网上 ...

  6. 处理自己的数据集_手写代码实现KDD CUP99数据集的数据归一化处理

    归一化是数据处理的常用方法之一,目的是消除不同评价指标之间的量纲对数据分析结果的影响,使各指标处于同一数量级,以解决数据指标之间的可比性问题. 目前学术界关于归一化和标准化的概念还不统一,常常会把这两 ...

  7. 如何手写代码进行页面布局

    有的时候,布局文件(例如main.xml)并不是万能的,典型的例子就是你的QQ好友列表,在人数未知的情况下我们是不能通过布局文件写死在布局文件中的,因为它是动态的,所以必须查询数据库然后通过代码来动态 ...

  8. autosar工具链_Autosar开发与手写代码开发的区别

    Autosar开发流程 1.BSW开发 主要应用工具链(Vector等工具,具体可以百度搜索Autosar配置工具)来配置,复杂驱动的代码需要手写,但是也要符合Autosar的接口标准,主要包括,CA ...

  9. 台湾一公司因停电,让员工手写代码...

    以下内容转载自:https://tech.ifeng.com/c/8E77HInNzqp 3月1日,中国台湾省新竹科技园区发生压降事件. 3月3日9点左右,台湾省兴达电厂发生设备故障,供电瞬间压降,导 ...

最新文章

  1. 同一个类 cannot be cast to_留学热门assignment之 税收筹划类essay
  2. halcon模板匹配——转化算子vector_angle_to_rigid和affine_trans_contour_xld
  3. Spring JDBC-使用Spring JDBC获取本地连接对象以及操作BLOB/CLOB类型数据
  4. 分割数组的最大值—leetcode410
  5. FusionCharts使用问题及解决方法(三)-FusionCharts常见问题大全
  6. 总结的若干关于RecursionError: maximum recursion depth exceeded问题的解决办法
  7. abp dapper mysql_ABP框架—后台:引入Abp.Dapper(10)
  8. 服务器Windows 2008 R2 安装SQL 2008 R2
  9. 有一动态生成的TABLE,当点击该TABLE中的按钮时,如何得到该按钮所在行的某一列的值啊?...
  10. STM32一体化步进电机驱动器控制步进电机
  11. MAC(多路访问控制)协议
  12. Xmarks被GFW屏蔽后,怎么同步?
  13. 我的世界空岛服务器修改地形,我的世界空岛制作教程 特别地形制作
  14. Lattice FPGA ---IP应用总结之“edp”
  15. 静坐常思己过 闲谈莫论人非
  16. cdr圆形渐变填充怎么设置_cdr渐变怎么设置?CorelDRAW渐变设置方法
  17. 【计算机网络】域名解析(DNS)过程
  18. 爬虫一 requests库与BeautifulSoup库、HTML
  19. 2018年SCI论文--整合GEO数据挖掘完整复现 八 :STRING数据库构建蛋白质相互作用网络(PPI),cytoscape软件筛选hub基因
  20. 宏基服务器型号,宏基云服务器排名

热门文章

  1. 【COCI 2007】追捕盗贼
  2. AutoCAD .NET二次开发(四)
  3. 玩游戏提示d3dx9丢失-找不到d3dx9怎么修复
  4. 青龙面板之饿了么复活
  5. 全新营销时代,金融企业如何有“种”有“收”?
  6. 【爬虫系列】Python如何实现进度条效果?
  7. Python将DOCX转换为markdown文件
  8. 程序员的图画书:《HTMLCSS设计与构建网站》
  9. 小学生蓝桥杯Python闯关 | 吉利又霸气的英文名
  10. 单字java_Java 字串阵列添加单字问题,以下是题目,和自己写的代码,请帮忙看看,谢谢!...