【屏幕适配发展介绍 Objective-C语言】
一、接下来,我们花一天时间,给大家介绍这个屏幕适配
1.那么,屏幕适配,是什么意思啊
我们说,写程序的时候,我们有时候要做
1)系统适配
2)屏幕适配
1)系统适配:是指的你写的这个代码,在iOS6、iOS7、iOS8,在不同的iOS系统下,是不是运行的效果,一致吧
这个指的是系统适配
因为,在iOS6、iOS7、iOS8,具体的不同系统下,有时候,代码会有一些小的区别
所以说,我们为了保证,你写的代码,在不同的系统下,运行效果都是一致的,所以,我们写完那个代码以后,要测试iOS6、iOS7、iOS8,那么当然最新的,苹果一般都推荐,是不是只适配两个系统
最近的两个版本,iOS7、iOS8
那么,这个是做系统的适配
那么,同样比如说是运行的iOS8系统,有可能你用的是iPhone4S、有可能是iPhone5、iPhone5S、iPhone6、iPhone6Plus
是不是都有可能啊
这就是,同样一个iOS系统,操作系统不变,但是是不是用在了不同的设备上
那么还有可能是iPad吧
不同的设备,有可能屏幕大小不一样
1)iPhone4S:3.5英寸
2)iPhone5S:4英寸
3)iPhone6:4.7英寸
4)iPhone6Plus:5.5英寸
5)iPad:等等
那么,当它运行在不同的设备上的时候,屏幕大小是不是不一样
那么,既然屏幕大小不一样,我们之前写代码的时候,是不是一直都是把frame、元素的坐标写死啊
比如说,按钮距离左边20、距离上边20、
那么,永远是不是都是写死了
这样的话,这个按钮,不论是在4英寸下的、3.5英寸下的
4.7英寸下的、5.5英寸下的
还是iPad下
它是不是都是显示在(20,20)那个点的位置
但是,有时候,我们不想让它这么做
我们希望它,就是在不同的屏幕下以后,是不是显示在那个相对位置吧
就是,比如说,无论在什么屏幕下
都相对最上边20个点,相对最左边20个点
或者说,无论在什么情况下,你都是相对两个控件之间,保持一定的间距
这个间距是不变的
那么,也就是说,等会儿给大家看一下就知道了
如果我们写代码的时候,把空间的frame,坐标写死了,写成具体的点
这个时候,在不同的屏幕下,展示,有可能会出现很大的问题
那么,我们屏幕适配的作用,就是为了让我们把UI控件上的布局做好了以后,无论它是在iPhone什么样的屏幕上,还是在iPad下,竖屏下,还是在横屏下,
都能正常去显示
那么,我们只要把UI控件布局好,只要布局一次
布局好以后,无论你手机是横屏、竖屏、还是3.5英寸、4.7英寸,还是iPad,各种,在所有设备下,展示效果都是正常的
都是正确的,这就是我们屏幕适配的目的
其实,今天就一个知识点,就是这个Autolayout-自动布局
那么,在继续之前,还是先把这个知识点给大家过一下
3.我们iPhone的屏幕发展过程,大致就是经历四个过程
1)第一个过程:就是不需要屏幕适配,为什么,一开始iPhone是不是只有一个尺寸,3.5英寸,
那么这个时候,我们写代码的时候,我们可以把控件的frame、坐标、大小都写死,就OK了
并且,一开始iPhone程序,是不存在横屏、竖屏的问题
如果这个应用程序是横屏,那么,只能在横屏下运行,
如果这个应用程序是竖屏,那么,只能在竖屏下运行,
一开始,不存在竖屏,颠倒过来变成横屏的效果吧
我们就直接为frame设置一个坐标,我们这个时候,把它叫做MagicNumber
什么叫MagicNumber,你在程序代码里面,直接出现了一个数字,比如说是控件“点”frame = CGRectMake(20,30,20,100);
这种数字,就叫MagicNumber
为什么,这个数字,别人谁都不知道它什么意思啊
至少你要使用一个有意义的变量来保存啊
所以说,不要在写代码里面,直接出现数字
至少要把数字,放到一个变量里面
然后,在后面赋值变量
不要直接写个数字
一开始的时候,我们直接为frame写大小,可以用这个MagicNumber都没有问题
在iPhone3GS、iPhone4、iPhone4S,屏幕物理尺寸都是3.5英寸,根本就不需要进行屏幕适配
相关文章:
![](https://img-blog.csdnimg.cn/813d4e85537e4b30b71a6e7639fe814b.png#pic_center)
【屏幕适配发展介绍 Objective-C语言】
一、接下来,我们花一天时间,给大家介绍这个屏幕适配 1.那么,屏幕适配,是什么意思啊 我们说,写程序的时候,我们有时候要做 1)系统适配 2)屏幕适配 1)系统适配:是指的你写的这个代码,在iOS6、iOS7、iOS8,在不同的iOS系统下,是不是运行的效果,一致吧 这个指的是…...
![](https://www.ngui.cc/images/no-images.jpg)
linux中ls命令详解
ls 显示目录内容列表 补充说明 ls命令 就是list的缩写,用来显示目标列表,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。 语法 ls [选项] [文件名...][-1abcdfgiklmnopqrstuxABCDFGLNQRSUX…...
![](https://img-blog.csdnimg.cn/ad723e25ba764ff3a967c4f847a60911.png)
大盗阿福(记忆化搜索板子)
提供核心代码:(经典的记忆化搜索套路) int dfs(int pos){if(f[pos]!-1) return f[pos];//记忆化if(pos>n) return 0;//边界,越界int sum0;//模板int f10,f20;f1dfs(pos1);f2dfs(pos2)w[pos];summax(f1,f2);//模板f[pos]sum;//模…...
![](https://www.ngui.cc/images/no-images.jpg)
打卡力扣题目八
#左耳听风 ARST 打卡活动重启# 目录 一、问题 二、解题方法一 三、解题方法二 四、两种方法的区别 关于 ARTS 的释义 —— 每周完成一个 ARTS: ● Algorithm: 每周至少做一个 LeetCode 的算法题 ● Review: 阅读并点评至少一篇英文技术文章 ● Tips: 学习至少一…...
![](https://img-blog.csdnimg.cn/2a4afa9d67654c1c9066313de9b87b7d.png)
matlab使用教程(5)—矩阵定义和基本运算
本博客介绍如何在 MATLAB 中创建矩阵和执行基本矩阵计算。 MATLAB 环境使用矩阵来表示包含以二维网格排列的实数或复数的变量。更广泛而言,数组为向量、矩阵或更高维度的数值网格。MATLAB 中的所有数组都是矩形,在这种意义上沿任何维度的分量向量的长度…...
![](https://img-blog.csdnimg.cn/00794742e8a04826af7a9dbe1f45c229.png)
用HTML写一个简单的静态购物网站
实现代码: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>购物网站</title> &l…...
![](https://www.ngui.cc/images/no-images.jpg)
如何在go中实现程序的优雅退出,go-kratos源码解析
使用kratos这个框架有近一年了,最近了解了一下kratos关于程序优雅退出的具体实现。 这部分逻辑在app.go文件中,在main中,找到app.Run方法,点进入就可以了 它包含以下几个部分: App结构体:包含应用程序的配置选项和运行时状态。 …...
![](https://img-blog.csdnimg.cn/1b934526ee52476195f3be8365be53ee.png)
Appium+python自动化(二十八)- 高级滑动(超详解)
高级溜冰的滑动 滑动操作一般是两点之间的滑动,这种滑动在这里称其为低级的溜冰滑动;就是上一节给小伙伴们分享的。然而实际使用过程中用户可能要进行一些多点连续滑动操作。如九宫格滑动操作,连续拖动图片移动等场景。那么这种高级绚丽的溜…...
![](https://img-blog.csdnimg.cn/9d0a7ea3030a4f70a4dc02f9e0a96d8d.png)
github token使用方法
git remote set-url origin https://<githubtoken>github.com/<username>/<repositoryname>.git 在私有仓库的HTTPS的url上加入<githubtoken>即为token url,可以免ssh key登录...
![](https://www.ngui.cc/images/no-images.jpg)
Spring属性注解对配置项名称的自动转换
一、前言 在Spring中,我们经常需要将配置文件中的属性值注入到Java类中。Spring提供了两个主要的注解来实现这一功能:Value 和 ConfigurationProperties。其中 ConfigurationProperties支持将配置项名称与Java类中的属性名进行自动转换,包括…...
![](https://img-blog.csdnimg.cn/6369911301e14492bf08e9d459824596.jpeg)
Docker 安全 Docker HTTPS请求过程与配置
Docker 容器安全注意点 尽量别做的事 尽量不用 --privileged 运行容器(授权容器root用户拥有宿主机的root权限) 尽量不用 --network host 运行容器(使用 host 网络模式共享宿主机的网络命名空间) 尽量不在容器中运行 ssh 服务 尽…...
![](https://img-blog.csdnimg.cn/ef9a8f6cf94b467095e45f82571b6338.png)
DevOps(三)
CD(二) 1. 整体流程2. 环境准备1. jenkins安装2. 编译安装git3. docker安装4. docker-compose安装5. sonarqube安装6. harbor安装7. gitlab私服8. maven安装9. Nexus部署10. K8s部署3. 安装java及编写代码3.1 安装java3.2 安装IntelliJ IDEA3.3 安装tomcat3.4 安装maven3.5 c…...
![](https://www.ngui.cc/images/no-images.jpg)
AOP的妙用
一、改代码 自定义注解用于提示该代码已经在AOP中重构了 public interface ReviseToAop {// 用于记录修改状态String value() default ""; }使用注解(无意义,只是表名被修改) ReviseToAop("修改于:2023/7/30&quo…...
![](https://img-blog.csdnimg.cn/img_convert/8df63de3ecc488a3d3fff60c6e5bdec0.png)
CAN转ETHERCAT网关将CAN 总线和 ETHERCAT 网络连接方法
由于好多现场会出现将CAN总线的设备接到EtherCAT网络中,由于协议的不相同,不能直接进行连接,现需一种能同时兼容CAN 总线和ETHERCAT网络的一种设备,由此捷米JM-ECT-CAN 是自主研发的一款 ETHERCAT 从站功能的通讯网关。该产品主要…...
![](https://img-blog.csdnimg.cn/061f6e15fe3744eaadf521cbf64bfc81.png)
【大数据趋势】7月30日 汇率,恒指期货的大数据趋势概率分析。
1. 数据源头之一 : 汇率变化 从程序模拟趋势来看,美元在持续弱势状态,周线上正在构建一个新的下跌趋势,而且正在反抽过程中,即将完成,如果没有外部干预,会顺势往下。从月线来看,高点逐步降低&a…...
![](https://img-blog.csdnimg.cn/774a60ee98dc461c8e53168013d7e7d1.png)
mac使用mvn下载node-sass 会Binary download failed, trying source
m1 上使用nvm 以下node的版本可以直接下载(Binary download,而不是 trying source)而不用切换mac cpu架构 zhiwenwenzhiwenwendeMBP cockpit % nvm install 14.15.5 Downloading and installing node v14.15.5... Downloading https://node…...
![](https://img-blog.csdnimg.cn/6cbcd6c17cec4dba9bb3c0f895f02fa2.png)
【C++】开源:Muduo网络库配置与使用
😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍Muduo网络库配置与使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下…...
![](https://www.ngui.cc/images/no-images.jpg)
VCS ICO - Intelligent Coverage Optimization
ico是vcs提供的用于优化覆盖率的feature;一般用户通过dist solver bofore等约束了变量的随机概率,而ico会在用户约束的基础上,做一些自动“修正”,以此来优化随机激励,提高随机多样性,加速覆盖率收敛&#…...
![](https://img-blog.csdnimg.cn/0cf804d67f134149982033b1127337f5.png)
【分布式系统】分布式系统的8个谬误
网络可靠 对于分布式系统来说,网络、计算、存储是三大基石,系统之间进行拆分隔离之后,那么必定存在网络通讯,而网络是最不可靠的。 不管是从硬件层面还是软件层面来说,网络是不可靠的。(断电、配置错误、ID…...
![](https://img-blog.csdnimg.cn/ff192303f5ea4826b0871d40a13a711a.png)
tinkerCAD案例:25. 量角器 - 测量角度
tinkerCAD案例:25. 量角器 - 测量角度 原文 Now we’re going to make a protractor! A Protractor is one of the most basic, but essential, tools for making measurements. It is, then, surprising that the modern protractor is barely over 200 years ol…...
![](https://img-blog.csdnimg.cn/bd36e8520ecf4ba8b61cbfd4e7a85295.gif)
Flutter 使用texture_rgba_renderer实现桌面端渲染视频
Flutter视频渲染系列 第一章 Android使用Texture渲染视频 第二章 Windows使用Texture渲染视频 第三章 Linux使用Texture渲染视频 第四章 全平台FFICustomPainter渲染视频 第五章 Windows使用Native窗口渲染视频 第六章 桌面端使用texture_rgba_renderer渲染视频(本…...
![](https://www.ngui.cc/images/no-images.jpg)
linux虚拟机开机后桌面显示CentOS-7.5-x86盘片文件,并且无法远程连接虚拟机?
在虚拟机启动后遇到了显示CentOS-7.5-x86光盘片文件的问题,并且无法远程连接到虚拟机,有几个可能的解决方法: 检查虚拟机设置:确保虚拟机的网络适配器已正确配置,并且虚拟机配置的网络选项是桥接模式或 NAT 模式&#…...
![](https://img-blog.csdnimg.cn/8a014edcdc484fb4aa861c0859c94ad8.png)
【Spring Boot 源码学习】走近 AutoConfigurationImportSelector
AutoConfigurationImportSelector 源码解析 引言主要内容1. ImportSelector 接口2. DeferredImportSelector 接口3. AutoConfigurationImportSelector 功能概述 总结 引言 上篇博文我们了解了 EnableAutoConfiguration 注解,其中真正实现自动配置功能的核心实现者 …...
![](https://www.ngui.cc/images/no-images.jpg)
系统学习Linux-MySQL数据库备份(四)
一、概述 数据库备份是指将数据库中的数据、表格、视图、存储过程、触发器等信息备份到另一个地方,一遍在数据库丢失或损坏时进行恢复,数据库备份是数据库管理中必不可少的一项工作,通过备份可以保护数据库中的数据和业务。 二、数据备份的…...
![](https://img-blog.csdnimg.cn/9c53983dd8c847509b434d1de3825375.png#pic_center)
具身智能controller---RT-1(Robotics Transformer)(中---实验介绍)
6 实验 实验目的是验证以下几个问题: RT-1可以学习大规模指令数据,并且可以在新任务、对象和环境上实现zero-shot的泛化能力?训练好的模型可以进一步混合多种其他数据(比如仿真数据和来自其他机器人的数据)吗?多种方…...
![](https://www.learnfk.com/guide/images/wuya.png)
无涯教程-jQuery - load( url, data, callback)方法函数
load(url,data,callback)方法从服务器加载数据,并将返回的HTML放入匹配的元素中。 load( url, [data], [callback] ) - 语法 [selector].load( url, [data], [callback] ) 这是此方法使用的所有参数的描述- url - 包含请求发送到…...
![](https://www.ngui.cc/images/no-images.jpg)
【Shell】Shell编程之免交互
免交互:不需要人为控制就可以完成的自动化操作 自动化运维 Shell脚本和免交互是一个概念,但是两种写法 here document 使用i/o重定向的方式将命令的列表提供给交互式的程序或者命令 是一种标准输入,只能接受正确的指令或命令&#x…...
![](https://img-blog.csdnimg.cn/a4a19be56326415ea71b4fd78652b53f.png)
从Vue2到Vue3【七】——Vue2中响应式原理的实现及其缺陷
系列文章目录 内容链接从Vue2到Vue3【零】Vue3简介从Vue2到Vue3【一】Composition API(第一章)从Vue2到Vue3【二】Composition API(第二章)从Vue2到Vue3【三】Composition API(第三章)从Vue2到Vue3【四】C…...
![](https://img-blog.csdnimg.cn/af698a3d0cea4147a99cc98058ba5a9b.png)
用C语言实现堆排序算法
1.设计思路 排序的思想将一个数组按递增的顺序进行排序,将数组的第一个位置空下(下标为0),因为会导致子节点和本身同一个结点(i和2i一致),每次堆排序在下标1的位置放上了最大值,然后…...
![](https://img-blog.csdnimg.cn/b02134bfb5b84d4b87e09de09822be87.png)
tauri在github上进行自动更新打包并发版过程,实战操作避坑
从网上找了很多很多的文章,结果还是入坑了,一个问题找了一天才解决: Error A public key has been found, but no private key. Make sure to set TAURI_PRIVATE_KEY environment variable. 596 ELIFECYCLE Command failed with exit code…...
![](/images/no-images.jpg)
怎么做网站二级页面/江苏企业seo推广
类和对象作业 一、 填空题 类是组成Java程序的基本要素,类体有两部分构成:一部分是变量的定义,另一部分是 方法 的定义。执行Person p new Person();语句后,将在_______堆内存____中给Person对象分配空间,并…...
![](/images/no-images.jpg)
山西今日头条新闻消息/网站关键词优化排名怎么做
作为原始的调试方式,开发者可以使用帮助函数中的DBGPRINTF()在应用中的任何位置将调试信息打印到模拟器的输出窗口中。模拟器的输出窗口还会显示大量的AEE层运行时产生的信息,这些信息的含义如表16-1所示。 标识 含义 #*gBI BREW 进行初始化 #*gEX 退出B…...
做招聘的网站有哪些内容/营销型网站定制
目录 1.树莓派刷机 2.树莓派登陆 2.1 HDMI 视频线连接到显示器 第1种 2.2 串口连接登陆 第2种 2.3 通过网络登陆树莓派 2.3.1 让树莓派入网 2.3.2 固定树莓派的ip地址 2.3.3 网络ssh方式登陆树莓派 第3种(最常用…...
![](http://s5.51cto.com/wyfs02/M01/8D/0E/wKiom1iEBSGioFsRAABoJPsaSFk006.jpg)
网站搜索系统/英文seo是什么
看到这个消息,我的第一反应是重新翻出尘封已久的ipad,装上炉石准备上线领补偿。等等,作为一个数据库行业从业人员,是不是还应该干点什么?恩,很有必要再重新审视一下我们的数据库有没有做好容灾,否则&#…...
![](https://img-blog.csdnimg.cn/20201215101554241.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4ODg5MzUw,size_16,color_FFFFFF,t_70)
wordpress o2o插件/石景山区百科seo
上次讲到的是CSVread函数来获取测试数据的参数化,这次使用randomstring 有的时候有些参数是不断变化的,我们如果利用csv去做,还是要准备很多不同的数据,但是我们如果用randomstring的话,那么就可以减少这个问题的干扰。 步骤: 准备好csV格式的数据准备…...
![](/images/no-images.jpg)
益阳购物网站开发设计/沈阳seo按天计费
字符串的构造函数和析构函数以及赋值函数的重载,是面试中经常考到的问题,意在考察应聘者对于重载以及构造函数、析构函数的理解。 程序如下: #include<iostream> #include<string.h> using namespace std;class String { public:…...