IRLSize 2.3.0

IRLSize 2.3.0

测试已测试
语言语言 Obj-CObjective C
许可协议 MIT
发布最后发布2020年10月

Jeff KelleyNathan Walczak 维护。



IRLSize 2.3.0

  • 作者:
  • Jeff Kelley

IRLSize

CI Status Version License Platform

入门

要运行示例项目,克隆仓库并将其根目录在终端中。运行以下命令以安装依赖项:

pod install --project-directory=Example

使用

所有 IRLSize 方法都有两种版本:一种使用 NSMeasurement(Swift 中的 Measurement),另一种使用 IRLRawMillimeters 类型(毫米测量的 double)。

重要:升级到 IRLSize 2.0

IRLSize 2.0 将测量的单位从米修改为毫米,以更好地管理官方苹果文档中的设备尺寸信息。这是一个破坏性更改,因此原始单位类型从 IRLRawLengthMeasurement 更改为 IRLRawMillimeters,以避免通过系数1,000错误地改变现有代码。如果你使用了 NSMeasurement,则不需要进行任何更新,因为它可以自动进行单位转换。

测量屏幕元素

要在iOS应用程序中查找UIView的尺寸,请使用以下属性之一

Objective-C

// NSMeasurement Version
NSMeasurement<NSUnitLength *> *width = view.irl_physicalWidth;
NSMeasurement<NSUnitLength *> *height = view.irl_physicalHeight;

// Raw Version
//   `IRLRawMillimeters` is a `double` representing millimeters. 
IRLRawMillimeters rawWidth = view.irl_rawPhysicalWidth;
IRLRawMillimeters rawHeight = view.irl_rawPhysicalHeight;

如果视图位于辅助屏幕上(例如,如果使用外部显示器),则测量结果将返回为 nil

当然,这也可以在Swift中使用

Swift

// Measurement Version
let width = view.physicalWidth // type: Measurement<UnitLength>
let height = view.physicalHeight // type: Measurement<UnitLength>

// Raw Version
let rawWidth = view.rawPhysicalWidth // type: IRLRawMillimeters
let rawHeight = view.rawPhysicalHeight // type: IRLRawMillimeters

视图大小设置

如果您想要确保视图与特定的物理大小相匹配,IRLSize提供了转换来进行辅助

Objective-C

// NSMeasurement Version
NSMeasurement<NSUnitLength *> *desiredHeight =
[[NSMeasurement alloc] initWithDoubleValue:38.0
                                      unit:NSUnitLength.millimeters];

view.transform = [view irl_transformForPhysicalHeight:desiredHeight];

// Raw Version
view.transform = [view irl_transformForRawPhysicalHeight:38.0];

Swift

// Measurement Version
let desiredHeight = Measurement(value: 38, unit: UnitLength.millimeters)

view.transform = view.transform(forPhysicalHeight:desiredHeight)

// Raw Version
view.transform = view.transform(forRawPhysicalHeight:38);

测量设备

如果您只是想了解屏幕的物理尺寸,请使用iOS上的UIDevice或watchOS的WKInterfaceDevice类别。

Objective-C

// iOS
NSMeasurement<NSUnitLength *> *screenHeight = UIDevice.currentDevice.irl_physicalScreenHeight;
IRLRawMillimeters rawScreenHeight = UIDevice.currentDevice.irl_rawPhysicalScreenHeight;

// watchOS
NSMeasurement<NSUnitLength *> *screenHeight = WKInterfaceDevice.currentDevice.irl_physicalScreenHeight;
IRLRawMillimeters rawScreenHeight = WKInterfaceDevice.currentDevice.irl_rawPhysicalScreenHeight;

Swift

// iOS
let screenHeight = UIDevice.current.physicalScreenHeight
let rawScreenHeight = UIDevice.current.rawPhysicalScreenHeight

// watchOS
let screenHeight = WKInterfaceDevice.current.phsyicalScreenHeight
let rawScreenHeight = WKInterfaceDevice.current.rawPhysicalScreenHeight

安装

IRLSize可通过CocoaPods获取。要安装,只需将以下行添加到您的Podfile中

pod "IRLSize"

作者

Jeff Kelley ([email protected]) 在Detroit Labs

许可协议

IRLSize可在MIT许可证下使用。有关更多信息,请参阅LICENSE文件。