测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2017年6月 |
SwiftSwift版本 | 3.0 |
SPM支持SPM | ✗ |
由 Felipe Ricieri 维护。
为您的 UIScrollView
添加下拉拉伸 UIImageView
/UIView
的简单方法。这与 Twitter 个人资料头部的行为相似。
FRStretchImageView 可通过 CocoaPods 获得。要安装它,只需将以下行添加到您的 Podfile 中
pod "FRStretchImageView"
然后运行
$ pod install
要手动安装 FRStretchImageView
,只需将 FRStretchImageView
文件添加到您的项目中。
要运行示例项目,首先克隆仓库,然后在 Example 目录中运行 pod install
。
首先,您需要在 Storyboard 中创建并设置将被观察的 UIScrollView
。有关更多信息,请参阅 Natasha The Robot 的教程:https://www.natashatherobot.com/ios-autolayout-scrollview/
您设置完成后,将您的 UIImageView
/UIView
放在其顶部,并固定所需的约束。不需要您为 FRStretchImageView
引用它们,它将为您处理。但为了正确运行,只有两个条件
您需要从您的 UIImageView
/UIView
(第一个项目)固定一个顶部的 NSLayoutConstraint
到其父视图(它可能是您的 UIScrollView
的 “Content View” UIView
);
您需要在您的 UIImageView
/UIView
中固定一个高度 NSLayoutConstraint
。
……并且将其子类化为 FRStretchImageView
(或 FRStretchView
)。
现在您可以为您的 UIImageView
/UIView
添加拉伸行为!您只需要一行代码即可使其工作
myStretchableImage.stretchHeightWhenPulledBy(scrollView: myScroll)
完整示例
import FRStretchImageView
class MyViewController : UIViewController {
@IBOutlet weak var myScroll : UIScrollView!
@IBOutlet weak var myStretchableImage : FRStretchImageView!
override func viewDidLoad() {
super.viewDidLoad()
self.myStretchableImage.stretchHeightWhenPulledBy(scrollView: self.myScroll)
}
}
您也可以将此行为添加到整个 UIView
中
import FRStretchImageView
class MyViewController : UIViewController {
@IBOutlet weak var myScroll : UIScrollView!
@IBOutlet weak var myStretchableView : FRStretchView!
override func viewDidLoad() {
super.viewDidLoad()
self.myStretchableView.stretchHeightWhenPulledBy(scrollView: self.myScroll)
}
}
如果您的 NSLayoutConstraint
没有填充 FRStretchImageView
规则,现在您可以通过添加代码来手动设置它们(从 v1.2.0 开始)
self.myStretchableImage.topConstraint = myTopConstraint
self.myStretchableImage.heightConstraint = myHeightConstraint
注意:在设置可拉伸滚动视图之后执行此操作,否则初始值将被覆盖。
如果您希望在自己的日志中收到有关 FRStretchImageView
分配/释放的报告,或者您想监听 UIScrollView
的 contentOffset 更新,请启用调试模式。
myStretchableImage.debug = true // (or myStretchableView.debug = true)
FRStretchImageView
可以绕过您的 IBOutlet
来自动添加其行为,但它只会包装 IBOutlet
及其superviews。因此,如果您在 UIScrollView
和 UIImageView
/UIView
观察者之间使用多个 UIView
,您应在它们上设置 clipToBounds = false
。
MIT 许可证
版权所有 © 2017 Felipe Ricieri
以下条件之下,本授权文件已授权任何获取本软件及其相关文档资料(以下称为“软件”)副本的个人,无限制地使用本软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可以及销售软件副本,并允许软件的接收者根据以下条件执行上述操作:
上述版权声明和许可声明应包含在软件的复制件或实质性部分的副本中。
软件按“原样”提供,不提供任何形式的保证,无论是明确的还是隐含的,包括但不限于对适销性、特定用途适用性和非侵权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论这些责任是因合同、侵权或其他原因而引起的,并且与软件、软件的使用或其他交易有关。