IRLSize
入门
要运行示例项目,克隆仓库并将其根目录在终端中。运行以下命令以安装依赖项:
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文件。