Swift:UIPageControl在iOS 9中自动滑动
我将ImageView放在UICollectionViewCell中,并在其下方放置了一个页面控件。两者都通过编程方式连接 但是,我希望Swift:UIPageControl在iOS 9中自动滑动,ios,swift,xcode,uicollectionview,uipagecontrol,Ios,Swift,Xcode,Uicollectionview,Uipagecontrol,我将ImageView放在UICollectionViewCell中,并在其下方放置了一个页面控件。两者都通过编程方式连接 但是,我希望自动刷卡(比如每5秒一次),图像应该自动刷卡。如果用户手动刷卡,也应该自动刷卡。另外,当页面控件到达最后一个时,它应该以第一个开始 下面是我使用的代码: var offersImages: [UIImage] = [ //Array of Banners UIImage(named: "default-banner.png")!,
自动刷卡(比如每5秒一次),图像应该自动刷卡。
如果用户手动刷卡,也应该自动刷卡。另外,当页面控件到达最后一个时,它应该以第一个开始
下面是我使用的代码:
var offersImages: [UIImage] = [ //Array of Banners
UIImage(named: "default-banner.png")!,
UIImage(named: "default-banner.png")!,
UIImage(named: "default-banner.png")!,
UIImage(named: "default-banner.png")!,
]
override func viewDidLoad() {
super.viewDidLoad()
self.objPageControl.currentPage = 0
self.objPageControl.numberOfPages = self.offersImages.count
}
func scrollViewDidScroll(scrollView: UIScrollView) {
let pageWidth : CGFloat = self.objBannerCollectionView.frame.size.width
self.objPageControl.currentPage = Int(self.objBannerCollectionView.contentOffset.x/pageWidth)
}
如何在Swift中实现这一点?请参考以下链接,它将有助于解决您的问题
请参考以下链接,它将有助于解决您的问题
下面的代码解决了我的问题:
//MARK:- viewDidLoad
override func viewDidLoad() {
super.viewDidLoad()
. . .
_ = NSTimer.scheduledTimerWithTimeInterval(2, target: self, selector: #selector(moveToNextPage), userInfo: nil, repeats: true)
}
func moveToNextPage (){
let pageWidth:CGFloat = self.objBannerCollectionView.frame.width
let maxWidth:CGFloat = pageWidth * 4
let contentOffset:CGFloat = self.objBannerCollectionView.contentOffset.x
var slideToX = contentOffset + pageWidth
if contentOffset + pageWidth == maxWidth {
slideToX = 0
}
self.objBannerCollectionView.scrollRectToVisible(CGRect(x:slideToX, y:0, width:pageWidth, height:self.objBannerCollectionView.frame.height), animated: true)
}
下面的代码解决了我的问题:
//MARK:- viewDidLoad
override func viewDidLoad() {
super.viewDidLoad()
. . .
_ = NSTimer.scheduledTimerWithTimeInterval(2, target: self, selector: #selector(moveToNextPage), userInfo: nil, repeats: true)
}
func moveToNextPage (){
let pageWidth:CGFloat = self.objBannerCollectionView.frame.width
let maxWidth:CGFloat = pageWidth * 4
let contentOffset:CGFloat = self.objBannerCollectionView.contentOffset.x
var slideToX = contentOffset + pageWidth
if contentOffset + pageWidth == maxWidth {
slideToX = 0
}
self.objBannerCollectionView.scrollRectToVisible(CGRect(x:slideToX, y:0, width:pageWidth, height:self.objBannerCollectionView.frame.height), animated: true)
}
使用NSTimer控制时间使用NSTimer控制时间