苹果手机适配手写代码
一、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];}
苹果手机适配手写代码相关推荐
- IOS纯手写代码支持旋屏
2019独角兽企业重金招聘Python工程师标准>>> 不用ib纯手写代码实现旋屏效果,xcode4.6.3,今天试了一下,可以做到,但是代码量会增加,基本思路是:在 - (void ...
- 揭秘 ClownFish 比手写代码还快的原因
说明:本文的第一版由于反对人数较多(推荐/反对数量是:23 / 17), 我在8月20日删除了博文内容,只留下一段简单的内容. 既然分享技术也引来这么多的反对,那我就不分享了. 如果希望知道我的优化方 ...
- python是如何实现进程池和线程池的_高并发:线程、线程锁与线程池(精华),手写代码实现线程池...
前文: 单线程--多线程的开启--线程锁--线程同步工具--手写连接池--连接池工具类. 一.线程 1.线程的概念 2.线程与进程的关系 3.定义: 区别:如上!!! 4.wait()和sleep() ...
- python在哪里写代码比较适合-程序员面试被要求手写代码,你与顶级程序员的差别在哪?...
原标题:程序员面试被要求手写代码,你与顶级程序员的差别在哪? 前言: Python现在非常火,语法简单而且功能强大,很多同学都想学Python! 所以小的给各位看官们准备了收藏已久的视频教程分享给大家 ...
- 【深度学习】深度学习手写代码汇总(建议收藏,面试用)
这几天一些同学在面试的时候,遇到了一些手写代码的题,因为之前都没有准备到,所以基本上在写的时候都有点蒙. 今天我就把一些常见的考题给大家整理下,这些题也是我之前准备面试的时候整理的,很多的代码都是网上 ...
- 处理自己的数据集_手写代码实现KDD CUP99数据集的数据归一化处理
归一化是数据处理的常用方法之一,目的是消除不同评价指标之间的量纲对数据分析结果的影响,使各指标处于同一数量级,以解决数据指标之间的可比性问题. 目前学术界关于归一化和标准化的概念还不统一,常常会把这两 ...
- 如何手写代码进行页面布局
有的时候,布局文件(例如main.xml)并不是万能的,典型的例子就是你的QQ好友列表,在人数未知的情况下我们是不能通过布局文件写死在布局文件中的,因为它是动态的,所以必须查询数据库然后通过代码来动态 ...
- autosar工具链_Autosar开发与手写代码开发的区别
Autosar开发流程 1.BSW开发 主要应用工具链(Vector等工具,具体可以百度搜索Autosar配置工具)来配置,复杂驱动的代码需要手写,但是也要符合Autosar的接口标准,主要包括,CA ...
- 台湾一公司因停电,让员工手写代码...
以下内容转载自:https://tech.ifeng.com/c/8E77HInNzqp 3月1日,中国台湾省新竹科技园区发生压降事件. 3月3日9点左右,台湾省兴达电厂发生设备故障,供电瞬间压降,导 ...
最新文章
- 同一个类 cannot be cast to_留学热门assignment之 税收筹划类essay
- halcon模板匹配——转化算子vector_angle_to_rigid和affine_trans_contour_xld
- Spring JDBC-使用Spring JDBC获取本地连接对象以及操作BLOB/CLOB类型数据
- 分割数组的最大值—leetcode410
- FusionCharts使用问题及解决方法(三)-FusionCharts常见问题大全
- 总结的若干关于RecursionError: maximum recursion depth exceeded问题的解决办法
- abp dapper mysql_ABP框架—后台:引入Abp.Dapper(10)
- 服务器Windows 2008 R2 安装SQL 2008 R2
- 有一动态生成的TABLE,当点击该TABLE中的按钮时,如何得到该按钮所在行的某一列的值啊?...
- STM32一体化步进电机驱动器控制步进电机
- MAC(多路访问控制)协议
- Xmarks被GFW屏蔽后,怎么同步?
- 我的世界空岛服务器修改地形,我的世界空岛制作教程 特别地形制作
- Lattice FPGA ---IP应用总结之“edp”
- 静坐常思己过 闲谈莫论人非
- cdr圆形渐变填充怎么设置_cdr渐变怎么设置?CorelDRAW渐变设置方法
- 【计算机网络】域名解析(DNS)过程
- 爬虫一 requests库与BeautifulSoup库、HTML
- 2018年SCI论文--整合GEO数据挖掘完整复现 八 :STRING数据库构建蛋白质相互作用网络(PPI),cytoscape软件筛选hub基因
- 宏基服务器型号,宏基云服务器排名
热门文章
- 【COCI 2007】追捕盗贼
- AutoCAD .NET二次开发(四)
- 玩游戏提示d3dx9丢失-找不到d3dx9怎么修复
- 青龙面板之饿了么复活
- 全新营销时代,金融企业如何有“种”有“收”?
- 【爬虫系列】Python如何实现进度条效果?
- Python将DOCX转换为markdown文件
- 程序员的图画书:《HTMLCSS设计与构建网站》
- 小学生蓝桥杯Python闯关 | 吉利又霸气的英文名
- 单字java_Java 字串阵列添加单字问题,以下是题目,和自己写的代码,请帮忙看看,谢谢!...