NowYouSeeMe 1.0.1

NowYouSeeMe 1.0.1

Naveen Chaudhary 维护.



  • naveen-c

Logo

现在你看到了我

Build Status Version Platform Swift Docs License

NowYouSeeMe 是一个用 Swift 编写的视图跟踪框架,可以将单 API 添加到 UIView 的一个实例或其任何子类。视图还可以添加自定义的可视性条件和监听器。

理念

  • 60 fps(所有计算都在后台线程上执行)
  • 视图上没有可跟踪的包装器
  • 视图注入的可视性规则
  • 将可视性回调返回到视图(在主线程上)
  • 简单易用的 API

使用方法

要在 UI 创建之前启用框架,您需要调用以下方法:

NowYou.seeMe()  // didFinishLaunchingWithOptions is a good place to initialise the framework

视图

不再需要为跟踪可访问性创建自定义视图子类了。

跟踪视图现在就像这样简单:

view.trackView()  // can be UIView or any of its subclasses

您还需要调用父 UIViewController 视图的 trackView 以管理基于视图控制器生命周期的可视性回调

override func viewDidLoad() {
    super.viewDidLoad()
    self.view.trackView()
}

滚动视图

如果您想跟踪滚动视图的子视图的可视性,也必须在滚动视图上调用 trackView()

scrollView.trackView()  // can be UIScrollView, UITableView, UICollectionView, or any other scrollable view

这可以启用对滚动视图的 contentOffset 的跟踪,以计算子视图的正确可见性。

可回收视图

如果您想跟踪可回收视图的子视图的可视性,您还必须在可回收视图中调用 trackView()

cell.trackView()  // can be UITableViewCell, UICollectionViewCell, or any other recyclable view

监听器

如果无法监听更改,则没有必要跟踪视图的可视性。

您可以在 trackView() 调用中将 ViewabilityListener 提供给视图以监听 viewStarted(:)viewEnded(:) 事件。

class CustomListener: ViewabilityListener {
    // view has entered the view port (visibility percentage > 0)
    func viewStarted(_ view: UIView) {
        view.backgroundColor = .green
    }

    // complete view has exited the viewport (visibility percentage == 0)
    func viewEnded(_ view: UIView) {
        view.backgroundColor = .red
    }
}

view.trackView(CustomListener())  // listener attached to the view

条件

想要更多地控制可视性回调吗?

您可以在 trackView() 调用中为视图提供您自定义的 ViewCondition

class CustomCondition: ViewCondition {
    func evaluate(for state: ScrollState, viewPercentage: Float) {
        // custom evaluation here based on scroll state and visible view percentage
    }
}

view.trackView(conditions: [CustomCondition()])  // view condition added to the view

默认条件

提供了一些默认视图条件以帮助您节省计算。

API 文档

NowYouSeeMe 的完整文档可在此处找到。

更多信息可在Wiki 部分找到。

安装

要将NowYouSeeMe集成到您的Xcode项目中使用CocoaPods,请在您的Podfile中指定它。

pod 'NowYouSeeMe'

然后,运行以下命令

$ pod install

依赖项

要求

  • iOS 10.0+
  • Swift 5

Readme Score