ios-IOS 如何用纯代码适配屏幕

问题描述

IOS 如何用纯代码适配屏幕

在应用中如何用纯代码适配不同的iPhone设备,有没有好的方法?

解决方案

用百分比适配啊

比如你控件的宽度在4寸手机上是120,那么在别的尺寸上的宽度:就是别的宽度跟当前宽度的一个比值 乘以 120

// 当前屏幕宽度 / 你在哪个尺寸的宽度做的 (比如5s的宽320) * 那个控件的宽度
let imgWidth = UIScreen.mainScreen().bounds.size.width / 320 * 120

5,5c,5S(4寸):320 * 568 px

解决方案二:

比较简单的方法就是用比例去设置frame

解决方案三:

使用Autolayout之Masonry解决适配问题

解决方案四:

赞同1楼,用Masonry不要太简单,代码量也少,用比例计算Frame如果是有横屏的 工作量还是蛮大的

解决方案五:

简单的用frame和autrsizeingmask 复杂的只能自己写autoLayout

解决方案六:

现在的适配用第三方Masonry加入约束条件也可以做适配的。
自己做适配的话会比较简单,其实可以通过UI给的高保真图的尺寸和实际的设备尺寸来计算autoSizeScale,然后每次写的时候就用高保真上的宽高来乘上这个autoSizeScale。
例如:UI给的高保真是按照6的尺寸做的话,那么就RealUISrceenWidth=375,RealUISrceenHight=667,
autoSizeScaleX=获取实际设备的宽/RealUISrceenWidth,autoSizeScaleY = 获取时间设备的高/RealUISrceenHight.然后再把高保真上的宽和高拿过来分别*autoSizeScale的值就可以了。
修改RealUISrceenHight 4/4s : 480 5/5s :568 6/6s: 667 6p/6sp :736
修改RealUISrceenWidth 4/4s 5/5s: 320 6/6s :375 6p/6sp: 414
希望对lz有帮助

解决方案七:

所有的控件全部用代码加添,然后坐标用相对坐标,相对坐标的计算根据屏幕尺寸来计算得到

时间: 2024-08-25 22:47:24

ios-IOS 如何用纯代码适配屏幕的相关文章

iOS界面布局之三——纯代码的autoLayout及布局动画

iOS界面布局之三--纯代码的autoLayout及布局动画 一.引言         关于界面布局,apple的策略已经趋于成熟,autolayout的优势在开发中也已经展现的淋漓尽致.除了使用storyBoard进行布局约束的拖拽,有时我们也需要在代码中进行autolayout的布局设置,Masonry库可以方便的创建约束属性,实际上,我们也没有必要再使用系统原生的代码来创建和设置约束,这篇博客只作为使用的方法备忘.前几篇布局介绍的链接如下: 使用autoresizing进行界面布局:htt

《iOS 9 开发指南》——第6章,第6.9节实战演练——纯代码实现UI设计

6.9 实战演练--纯代码实现UI设计iOS 9 开发指南在本节的内容中,将通过具体实例讲解另外一种实现UI界面设计的方法:纯代码方式.在本实例中,将不使用Xcode 7的故事板设计工具,而是用编写代码的方式实现界面布局. 实例6-2 将Xcode界面连接到代码(1)使用Xcode 7创建一个iOS 9程序,在自动生成的工程文件中删除故事板文件.如图6-33所示. (2)开始编写代码,文件AppDelegate.h的具体实现代码如下所示: #import <UIKit/UIKit.h> @in

ios block 逆传-纯代码写block逆传值,代码块应该写在哪个方法里

问题描述 纯代码写block逆传值,代码块应该写在哪个方法里 如果是用纯代码写block逆传值,Apush到B,从B中传值到A,在B中定义block,调用block. 在A中准备代码块,这个准备的代码块在哪个方法里写? 如果是用storyBoard创建的话,在prepareForSegue方法里写,但是纯代码不知道在哪儿. 也就是B中调用[self.navigationController popViewControllerAnimated:YES]这个方法之后 ,A中该调用哪个方法 解决方案

ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局

一.实现效果 二.使用纯代码自定义一个tableview的步骤 1.新建一个继承自UITableViewCell的类 2.重写initWithStyle:reuseIdentifier:方法 添加所有需要显示的子控件(不需要设置子控件的数据和frame, 子控件要添加到contentView中) 进行子控件一次性的属性设置(有些属性只需要设置一次, 比如字体\固定的图片) 3.提供2个模型 数据模型: 存放文字数据\图片数据 frame模型: 存放数据模型\所有子控件的frame\cell的高度

iOS - iOS 适配

前言 什么是适配: 适应.兼容各种不同的情况. iOS 开发中,适配的常见种类: 1)系统适配, 针对不同版本的操作系统进行适配. 2)屏幕适配,针对不同大小的屏幕尺寸进行适配. iPhone 的尺寸:3.5 inch.4.0 inch.4.7 inch.5.5 inch . iPad 的尺寸:7.9 inch.9.7 inch.12.9 inch . 屏幕方向:竖屏.横屏. 1.系统适配 Objective-C // 获取系统版本 float systemVersion = [UIDevice

ios调用外部SDK后导致的屏幕旋转错误

问题描述 ios调用外部SDK后导致的屏幕旋转错误 程序是用C++写的跨平台横屏游戏,渲染引擎是opengl那套,IOS版添加友盟分享的SDK时,进入友盟封装的界面,游戏就变竖屏了,并且IOS6以下版本没有这个问题. IOS6以上版本是通过UIViewController控制,IOS5以下版本通过AddSubview方式添加view. 友盟的第一个界面是UINavigationController 解决方案 应该还是哪里没整对,第一个view controller 最好是UINavigation

iOS AFNetworking中cookie重定向代码_IOS

// 1. 取出需要同步的url (登录请求中返回的重定向地址) BESTHttpItem *httpItem = [BESTHttpHelper sharedHelper].curHttpItem; NSString *url = [NSString stringWithFormat:@"%@/#/login", httpItem.frontend_addr]; // 2. 取出当前的headerFields NSDictionary *headerFields = [NSHTTPC

思科 IOS&amp;IOS XE Software CMP远程代码执行漏洞通报

2017年3月17日美国时间下午4点,Cisco官方网站发布Cisco IOS&IOS XE Software 集群管理协议(Cluster Management Protocol)存在远程代码执行漏洞.该漏洞目前为0day漏洞,危害等级高.该漏洞允许未授权访问,远程攻击者可以重启设备和远程执行代码提升权限. Cisco IOS是Cisco的网际操作系统:是一个为网际互连优化的复杂的操作系统:也是一个与硬件分离的软件体系结构,随网络技术的不断发展,可动态地升级以适应不断变化的技术(软件). 根据

史上比较用心的纯代码实现AutoLayout

入职有两三个月了吧,都是使用 Objective-C 纯代码(虽然有时候偷偷参杂一些 Swift 开源库)来编写公司APP,写布局的时候几乎都是要么在初始化的时候用 initWithFrame,要么就初始化完毕之后用 view.frame.虽然这种方法很直观,一眼就可以看出这个 view 的位置以及大小,但是坏处也是有的,比如说在计算的时候麻烦等等. 概述 使用 Objective-C 纯代码编写 AutoLayout,看 AutoLayout 的字面理解就是自动布局,听起来好像蛮屌的样子.说白