FRStretchImageView 1.2.4

FRStretchImageView 1.2.4

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2017年6月
SwiftSwift版本3.0
SPM支持SPM

Felipe Ricieri 维护。



FRStretchImageView

为您的 UIScrollView 添加下拉拉伸 UIImageView/UIView 的简单方法。这与 Twitter 个人资料头部的行为相似。

Demo GIF

安装

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 引用它们,它将为您处理。但为了正确运行,只有两个条件

  1. 您需要从您的 UIImageView/UIView(第一个项目)固定一个顶部的 NSLayoutConstraint 到其父视图(它可能是您的 UIScrollView 的 “Content View” UIView);

  2. 您需要在您的 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。因此,如果您在 UIScrollViewUIImageView/UIView 观察者之间使用多个 UIView,您应在它们上设置 clipToBounds = false

许可证

MIT 许可证

版权所有 © 2017 Felipe Ricieri

以下条件之下,本授权文件已授权任何获取本软件及其相关文档资料(以下称为“软件”)副本的个人,无限制地使用本软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可以及销售软件副本,并允许软件的接收者根据以下条件执行上述操作:

上述版权声明和许可声明应包含在软件的复制件或实质性部分的副本中。

软件按“原样”提供,不提供任何形式的保证,无论是明确的还是隐含的,包括但不限于对适销性、特定用途适用性和非侵权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论这些责任是因合同、侵权或其他原因而引起的,并且与软件、软件的使用或其他交易有关。