JLNRGravityImageView 1.0.2

JLNRGravityImageView 1.0.2

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2015年2月

由 Julian Raschke 维护。Julian Raschke.



  • 作者:
  • Julian Raschke

它做什么?

JLNRGravityImageView 是一个轻量级的 UIImageView 子类,在 UIViewContentModeAspectFill 模式下将图像边缘固定到视图边缘(尽管不在 AspectFit 模式下,参考 GitHub issue/2)。

这非常有用,例如,如果您希望照片填满屏幕上的某个区域,但又不想截掉图片顶部的人物头部或商标,只需将 alignTop 设置为 YESgravity 就会将图像向上拉至尽可能高。

其接口与 UIImageViewAligned 兼容(四个属性 alignTopalignBottomalignLeftalignRight),并且可通过 IBInspectable 在 Interface Builder 中配置。

它是如何实现的?它与 UIImageViewAligned 有何不同?

UIImageViewAligned 一样,这是一个 UIImageView 子类,因此现有的类别仍然可用。不需要更改 XIB 和故事板。

UIImageViewAligned 不同,JLNRGravityImageView 完全不使用嵌套视图。这避免了 UIImageView 在外层 UIImageView 上重置图像属性的问题,导致显示两个图像而不是一个。

相反,JLNRGravityImageViewlayer.contentsRect 属性设置为大于 1x1 的矩形。这使我们能够影响 UIImageView(实际上是 CALayer)如何居中图像。

(另一种我尝试过的方法是使用如 TopLeft 等内容模式,并通过 imageView.contentScaleFactorimageView.transform 缩放图像,但结果太不一致。)

要求

JLNRGravityImageView 应能在所有的 iOS 版本上工作。

安装

您只需将 Classes 中的两个文件复制到您的项目中,但最简单的方式是使用 CocoaPods

CocoaPods 是一款 Objective-C 依赖管理工具,它可以自动化并简化在项目中使用第三方库(如 JLNRGravityImageView)的过程。更多详细信息请参见“入门”指南

Podfile

platform :ios, '7.0'
pod "JLNRGravityImageView", :git => "https://github.com/jlnr/JLNRGravityImageView"

许可

JLNRGravityImageView 采用 MIT 许可。