SwiftyFitsize 是一个 Swift 的屏幕适配方案。
iOS 9.0+
Xcode 10.0+
Cocoapods
pod 'SwiftyFitsize'
一、操作符 ~
与 ≈
无论是
~
还是≈
对iPhone
的适配效果是一样的。而对iPad
而言,iPad
的宽度太大,使用≈
还是会按宽度比例进行运算,就会显示特别臃肿,这时使用~
在显示上就会比较合适。
~
在≈
的基础上针对iPad
的适配大小后再去乘上iPadFitMultiple
。一般情况下直接使用
~
即可。
~
: 当设备为 iPad
时,适配后的值会与 iPadFitMultiple
相乘
100~ UIFont.systemFont(ofSize: 14)~ CGPoint(x: 10, y: 10)~ CGRect(x: 10, y: 10, width: 100, height: 100)~ UIEdgeInsetsMake(10, 10, 10, 10)~
≈
: (option + x) 适配后的值不会与 iPadFitMultiple
相乘
100≈ UIFont.systemFont(ofSize: 14)≈ CGPoint(x: 10, y: 10)≈ CGRect(x: 10, y: 10, width: 100, height: 100)≈ UIEdgeInsetsMake(10, 10, 10, 10)≈
修改 参照宽度
与 iPadFitMultiple
可以调用以下方法
/// 设置参照的相关参数 /// /// - Parameters: /// - width: 参照的宽度 /// - iPadFitMultiple: iPad 在适配后所得值的倍数 (0 , 1] SwiftyFitsize.reference(width: 414, iPadFitMultiple: 0.5)
二、支持 xib 和 storyboard
enum SwiftyFitType: Int { /// Original Value case none = 0 /// ~ case flexible = 1 /// ≈ case force = 2 }
Font Fitsize
支持的UI控件有: UILabel
UIButton
UITextView
UITextField
FontFitType
的值请参考上方的 enum SwiftyFitType
Constraint Fitsize
约束适配同上
iPad
关于 ~
与 ≈
在使用上的对比
三、Objective-C
由于
OC
不支持运算符重载,所以只能用宏来适配。
Xib
和Storyboard
则跟上方提及的使用方式相同。
修改 参照宽度
与 iPadFitMultiple
[SwiftyFitsize referenceWithWidth:414 iPadFitMultiple:0.6];
~
UIFont *font = [UIFont systemFontOfSize:14]; UIFont *font1 = font.sf; UIFont *font2 = SF_Font(font); CGFloat num = SF_Float(14); CGPoint point = SF_Point(CGPointMake(10, 10)); CGSize size = SF_Size(CGSizeMake(100, 100)); CGRect rect = SF_Rect(CGRectMake(10, 10, 100, 100)); UIEdgeInsets edge = SF_EdgeInsets(UIEdgeInsetsMake(0, 0, 100, 100));
≈
UIFont *font1 = font.sfz; UIFont *font2 = SFZ_Font(font); CGFloat num = SFZ_Float(14); CGPoint point = SFZ_Point(CGPointMake(10, 10)); CGSize size = SFZ_Size(CGSizeMake(100, 100)); CGRect rect = SFZ_Rect(CGRectMake(10, 10, 100, 100)); UIEdgeInsets edge = SFZ_EdgeInsets(UIEdgeInsetsMake(0, 0, 100, 100));
简介 本文将介绍 Weex 适配不同尺寸屏幕的方法以及横竖屏动态切换时如何自适应。 Weex 如何将前端样式值转换为系统坐标值 以 iOS 为例,在应用启动时,Weex 获取当前屏幕宽度作为全局默认值。在 iOS 系统上该宽度为实际像素/屏幕比例后的 UIKit 宽度。比如 iPhone6 为 375。 @implementation WXCoreBridge + (void)install
本文向大家介绍vue移动端屏幕适配详解,包括了vue移动端屏幕适配详解的使用技巧和注意事项,需要的朋友参考一下 flexible vue移动端屏幕适配,查看项目地址 效果预览 # 项目clone git clone git@github.com:NicolasGui/flexible.git # 进入项目目录 cd flexible # 安装依赖 npm install # 启动服务 localh
我正在使用android gif绘图库在我的android应用程序中显示gif图像。正如您所知,gif图像应该位于文件夹中,而不是位于文件夹中,因此android无法自动在不同大小之间切换。 我如何处理不同屏幕尺寸的问题?
本文向大家介绍ionic2屏幕适配实现适配手机、平板等设备的示例代码,包括了ionic2屏幕适配实现适配手机、平板等设备的示例代码的使用技巧和注意事项,需要的朋友参考一下 本文介绍了ionic2屏幕适配实现适配手机、平板等设备的示例代码,分享给大家,具体如下: 推荐使用的编辑器是:VS code (Visual Studio Code)=>只负责编辑文档,不编译。 而WebStorm 有检查编译
screen 模块用于检索有关屏幕大小,显示,光标位置等的信息 进程: 主进程 渲染进程 screen 是一个 EventEmitter. 注意: app模块必须用在 ready事件后. 注意: 在渲染进程或开发者工具栏中, window.screen 是一个预设值的 DOM属性, 所以 var screen = require('electron').screen 这样写的话是无效的. 创建一
问题内容: 该文档是非常难学...... 有没有谁可以教我怎么一组孩子的任何一个Views到有类似的“权重”? 现在看来,所有内容都放在了左侧, 我已经尝试了很多次,但仍然无法像每个屏幕一样将其变成屏幕宽度的一半。 编辑:我不知道当所有的小孩都可以做些什么… …即使我想以特定的尺寸设置一些图像,此类也可以帮助我做ImageView ....它无法正常运行,我错过了一些设置吗?!? 问题答案: 注意
大家好 我在react native中遇到了CSS问题,我想在没有ScrollView的情况下在屏幕中安装所有组件,但我似乎无法找出问题所在(我尝试更改边距或填充的值,但在每个设备中看起来都不一样) 正如你所看到的附加图像: 正如你所看到的,下面的图表不在屏幕上,我需要滚动查看图表(我不想要) 以下是css代码:(我删除了一些行以缩短代码(如旋转木马组件等) ); CSS:
我有麻烦了!我有这个RecyclerView,其中我使用GridLayoutManager来实现两列和几行。但我的问题来了:我在这个RecyclerView中最多有8个项目,我想根据屏幕大小来调整它们 到目前为止,我得到了这个: 使用这段代码: 和在我的 上的选项项适配器构造函数中: 你有什么想法可以让我做到这一点吗?提前致谢。