我希望我的应用程序中的横幅可以使用计时器自动滚动。如果集合视图是单独的,我可以执行滚动,但是当集合视图位于表视图中时,我不知道如何执行滚动操作。
var r = 0
let t = Timer.init(timeInterval: 2, repeats: true) { (timer) in
let index = IndexPath(item: r, section: 0)
cell.cltView.scrollToItem(at: index, at: .left, animated: true)
if r == 6 {
r = 0
}else {
r = r+1
}
}
我正在cellForRowAt indexPath内使用此代码,但似乎不起作用。
答案 0 :(得分:0)
计时器现在才初始化,尚未使用。要开始此过程,您需要添加:-
t.fire()
答案 1 :(得分:0)
我已经实现了我的目标,方法是创建一个函数,然后在cellForItemAt上调用它 它解决了我的问题。
func scrollCollection(cltView: UICollectionView) {
var r = 0
let t = Timer.scheduledTimer(withTimeInterval: 2, repeats: true) { (timer) in
print(r)
let index = IndexPath(item: r, section: 0)
cltView.scrollToItem(at: index, at: .left, animated: true)
if r == 6 {
r = 0
}else {
r = r+1
}
}
t.fire()
}
这是我使用过的函数,我只是称它为
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath)
let mainImg = cell.viewWithTag(20) as! UIImageView
mainImg.image = UIImage(named: banners[indexPath.item])
if op {
scrollCollection(cltView: collectionView)
op = false
}
return cell
我放了一个复选标记,这样我就不会一遍又一遍地叫它了。