测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可证 | MIT |
发布最后发布 | 2015年2月 |
由 Julian Raschke 维护。Julian Raschke.
JLNRGravityImageView
是一个轻量级的 UIImageView
子类,在 UIViewContentModeAspectFill
模式下将图像边缘固定到视图边缘(尽管不在 AspectFit
模式下,参考 GitHub issue/2)。
这非常有用,例如,如果您希望照片填满屏幕上的某个区域,但又不想截掉图片顶部的人物头部或商标,只需将 alignTop
设置为 YES
,gravity 就会将图像向上拉至尽可能高。
其接口与 UIImageViewAligned 兼容(四个属性 alignTop
、alignBottom
、alignLeft
、alignRight
),并且可通过 IBInspectable
在 Interface Builder 中配置。
与 UIImageViewAligned
一样,这是一个 UIImageView
子类,因此现有的类别仍然可用。不需要更改 XIB 和故事板。
与 UIImageViewAligned
不同,JLNRGravityImageView
完全不使用嵌套视图。这避免了 UIImageView
在外层 UIImageView
上重置图像属性的问题,导致显示两个图像而不是一个。
相反,JLNRGravityImageView
将 layer.contentsRect
属性设置为大于 1x1 的矩形。这使我们能够影响 UIImageView
(实际上是 CALayer
)如何居中图像。
(另一种我尝试过的方法是使用如 Top
、Left
等内容模式,并通过 imageView.contentScaleFactor
或 imageView.transform
缩放图像,但结果太不一致。)
JLNRGravityImageView
应能在所有的 iOS 版本上工作。
您只需将 Classes
中的两个文件复制到您的项目中,但最简单的方式是使用 CocoaPods。
CocoaPods 是一款 Objective-C 依赖管理工具,它可以自动化并简化在项目中使用第三方库(如 JLNRGravityImageView)的过程。更多详细信息请参见“入门”指南。
platform :ios, '7.0'
pod "JLNRGravityImageView", :git => "https://github.com/jlnr/JLNRGravityImageView"
JLNRGravityImageView
采用 MIT 许可。