当前位置: 首页 > 软件库 > 程序开发 > UI组件库 >

SwiftyFitsize

Swift 屏幕适配方案
授权协议 MIT
开发语言 Objective-C Swift
所属分类 程序开发、 UI组件库
软件类型 开源软件
地区 国产
投 递 者 司徒锐进
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

SwiftyFitsize 是一个 Swift 的屏幕适配方案。

环境要求

  • iOS 9.0+

  • Xcode 10.0+

安装

  • Cocoapods

pod 'SwiftyFitsize'

预览

iPhone

使用

一、操作符 ~ 与 

无论是 ~ 还是  对 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

  1. 由于 OC 不支持运算符重载,所以只能用宏来适配。

  2. 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个项目,我想根据屏幕大小来调整它们 到目前为止,我得到了这个: 使用这段代码: 和在我的 上的选项项适配器构造函数中: 你有什么想法可以让我做到这一点吗?提前致谢。