本文介绍IOS开发入门IOS的代码集适用于所有iPhone手机的布局实现方案。 我希望这篇文章对学习IOS有帮助。
iOS套码适应所有iPhone手机布局实现方案
本文主要介绍代码适合所有iPhone手机的布局解决方案。 了解原理和思想是重点。
多个项目采用这样的布局方式,感觉很好,但实际上让我们看看你们的UI是否能接受这种方式
主要思想是屏幕根据屏幕尺寸动态改变所有控件大小,实现所有屏幕的配合
先展示效果
将手机放大到同样大小的效果
所有手机的显示效果都差不多
手机的顺序是iphone5siphone 6s iphone6splusiphonex
截图效果
画面根据画面的大小动态变化,是大画面的等比放大、小画面的等比缩小
实现构想
如何用一组代码在不同的屏幕上动态缩放,使效果在不同的屏幕上一致呢?
首先,我想到了我们现在合适的iphone屏幕比例为16:9的屏幕。 当时想的时候还没有iPhoneX出来,所以没有想iPhoneX。 如果从UI设计师那里得到750*1334的设计稿(只有iPhone6手机屏幕尺寸的设计稿),你可以先写适合iPhone6的设计稿。iPhone6页面结束后,其他手机的配合其他手机屏幕是16:9的屏幕。 也就是说,iPhone6要适合iPhone 6 plus,只需要所有空间的大小。 如果将所有位置放大到相同的倍数,将适合plus。 同样,要适合iPhone5,只需将所有控件缩小到相同的倍数即可。
以下是一个示例:
如果iPhone 6手机上写着宽100分高的头像,那么iPhone6 plus上的高度应该是110.4。 如果iPhone 6手机的上下距离是10,那么iPhone6 plus就是11
长宽比: 375 :414=100 : X X=110.4
容限比: 375 :414=10 :Y Y=11
如果知道上面的话就很简单了
我每次设定帧的时候,把不同的画面设定为不同的值就可以了。 每次设定值时,都可以通过我们的方法动态地将该值放大或缩小为相同比率的数值。 示例代码如下所示。
重要的示例代码
funccgfloatautofit (浮动: cgfloat )-CGFloat {
let min=ui screen.main.bounds.heightuiscreen.main.bounds.width? ui screen.main.bounds.height : ui screen.main.bounds.width
返回最小/375 *浮动
}
上面的代码是精华。 没什么难的。 也可以自己写。 也就是说,把浮点的数值传过来,首先判断手机屏幕的纵横比最短的值,因为也有屏幕的情况,所以拿到纵横比最短的值,直接计算出375比和实际缩放的值。 我们的UI设计师给我的是iPhone6的设计稿,所以我在比较375 (竖屏幕上手机的宽度)。
手机宽度: 375=缩放后的尺寸:设计原稿尺寸
布局实现方案的调整
往上看,自己想的下面不用看
要使用这一观点,在设置控件的位置和大小时,必须经过我们自动缩放的方法。
这里直接使用frame布局。 (直接设定纵横高度,虽然很土,但是很容易使用。 )
控件的布局方法
self.line.x=10
self.line.y=10
self.line.height=50
self.line.width=50
自. scroll view.add subview (self.line )
现在的方法
self.line.x=cgfloatautofit(10 ) )。
self.line.y=cgfloatautofit(10 ) )。
(self.line.height=cgfloatautofit (50 ) ) ) ) ) ) ) )。
self.line.width=cgfloatautofit (50 ) )。
自. scroll view.add subview (self.line )
很简单。 设定值得我们度过我们的方法
文字的设定方法
?
1
self.doctordesclabel.font=ui font.system font (of size : cgfloatautofit (15 ) )
文字的大小也要动态改变
设置图像大小
不能再使用sizetofit方法。 直接根据比率写。 如果设计的原稿为100px,则直接传递cgfloatautofit(50 )
左右边距设置
如果我说我想把左右边距的距离定为10
Label.x=cgfloatautofit(10 ) )。
label.width=self.width-cgfloatautofit (20 ) )。
页面方案
//
//vxxotheruserinfoviewcontroller.swift
//shikee
//
//Created by星酱on 2017/11/21。
//版权? 2017年shikee. All rights reserved。
//
import UIKit
导入框架
导入ST泵
导入swifty JSON
导入iqkeyboardmanagerswift
classvxxotheruserinfoviewcontroller : vxxbaseviewcontroller,UIScrollViewDelegate,PopPasswordDelegate{
var scrollView=UIScrollView (
var titleLbl=UILabel (
var shareBtn=UIButton (
var moreBtn=UIButton (
var navigationView:UIView?
var backBtn=UIButton (
letheadertopimgview=ui imageview (
letheaderbottomimgview=ui imageview (
let headerImgView=UIImageView (
let nameLabel=UILabel (
let scoreBtn=UIButton (
let descLabel=UILabel (
let hospitalLabel=UILabel (
let line=UIView ()
nb
本文职位坐标整理发表,希望对同学们有帮助。 更多信息,请关注职位坐标移动开发的IOS频道!