...
Code Block | ||
---|---|---|
| ||
class TableViewInfiniteScrollViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { var tableView:UITableView! ... override func viewDidLoad() { super.viewDidLoad() tableView = UITableView(frame: self.view.bounds, style: .plain) // Table view configurations. ... // Show the ads. let infiniteScrollConfigId = ConfigBuilder.companion.INFINITE_SCROLL_TEST_R89_CONFIG_ID RefineryAdFactoryR89AdFactory.shared.createInfiniteScroll( configurationID: infiniteScrollConfigId, scrollView: tableView, // Specify the item ad tag here as well scrollItemAdWrapperTag: "infiniteScroll_ad_wrapper_tag", lifecycleCallbacks: nil ) } ... } |
...
Code Block | ||
---|---|---|
| ||
import UIKit import R89SDK class ViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout { var collectionView: UICollectionView! ... override func viewDidLoad() { super.viewDidLoad() // Configure the collection view layout ... let infiniteScrollConfigId = ConfigBuilder.companion.INFINITE_SCROLL_TEST_R89_CONFIG_ID RefineryAdFactoryR89AdFactory.shared.createInfiniteScroll( configurationID: infiniteScrollConfigId, scrollView: self.collectionView, scrollItemAdWrapperTag: "infiniteScroll_ad_wrapper_tag", lifecycleCallbacks: nil) } ... } |
...
Code Block | ||
---|---|---|
| ||
let infiniteScrollConfigId = ConfigBuilder.companion.INFINITE_SCROLL_TEST_R89_CONFIG_ID let infiniteScrollId = RefineryAdFactoryR89AdFactory.shared.createManualInfiniteScroll( configurationID: infiniteScrollConfigId, lifecycleCallbacks: nil) |
...
Code Block | ||
---|---|---|
| ||
let cellPosition = manualInfScrollViewCell.getPosition() let adWrapper = manualInfScrollViewCell.adWrapper RefineryAdFactoryR89AdFactory.shared.getInfiniteScrollAdForIndex( infiniteScrollId: infiniteScrollId, itemIndex: Int32(cellPosition), itemAdWrapper: adWrapper, childAdLifecycle: nil ) |
Note |
---|
Careful on the implementation of This needs to be implemented according to your implementation of the infinite scroll. EX: 20 items per page so first 20 items go from 0 to 19 and the first item of the second page is not 0 is 20 formula beeing -> pageItemIndex + (pageSize*currentPage) so first item position of first page is 0 + (20*0) item 0 plus 20 multiplied by the current page index, so page 1 has index 0 and first item position of the second page is 0 + (20*1) item 0 plus 20 multiplied by the current page index, so page 2 has index 1 second item first page would be 1 + (20*0) = 1 second item second page would be 1 + (20*1) = 21 and so on |
...
Code Block | ||
---|---|---|
| ||
import UIKit import R89SDK // 1. Extend from the InfiniteScrollEventListener class InfiniteScrollLifecycleListener: InfiniteScrollEventListener { ... override func onAdItemLoaded(itemIdInData: Int32) { // Ad has been loaded for the position } ... } class ViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout { var collectionView: UICollectionView! ... override func viewDidLoad() { super.viewDidLoad() // Configure the collection view layout ... let infiniteScrollConfigId = ConfigBuilder.companion.INFINITE_SCROLL_TEST_R89_CONFIG_ID RefineryAdFactoryR89AdFactory.shared.createInfiniteScroll( configurationID: infiniteScrollConfigId, scrollView: self.collectionView, scrollItemAdWrapperTag: "infiniteScroll_ad_wrapper_tag", // 2. Pass the InfiniteScrollLifecycleListener instance via lifecycleCallbacks lifecycleCallbacks: InfiniteScrollLifecycleListener()) } ... } |
...
Code Block | ||
---|---|---|
| ||
// 1. Extend from the BannerEventListener private class BannerLifecycleListener : BannerEventListener { ... override func onLoaded() { // Ad has been loaded } ... } ... RefineryAdFactoryR89AdFactory.shared.getInfiniteScrollAdForIndex( infiniteScrollId: infiniteScrollId, itemIndex: Int32(cellPosition), itemAdWrapper: adWrapper, childAdLifecycle: BannerLifecycleListener() ) ... |
...