Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // QGGetHelpVC.swift
- // QuoteGuru
- //
- // Created by indianic on 25/05/17.
- // Copyright © 2017 indianic. All rights reserved.
- import UIKit
- class QGGetHelpVC: UIViewController,UIScrollViewDelegate,UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout{
- @IBOutlet weak var collViewPaging: UICollectionView!
- @IBOutlet weak var pageControl: UIPageControl!
- let viewNav = QGNavigationBarView()
- var arrImages = [String]()
- var timer = Timer()
- var objCompletionHandler: ((Int) -> Void)?
- var intGetLastPageno:Int!
- var boolIsCallFromOtherVC:Bool!
- @IBOutlet weak var constantColViewTop: NSLayoutConstraint!
- //MARK: view life cycle..
- override func viewDidLoad() {
- super.viewDidLoad()
- setUpUIView()
- }
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(true)
- timer = Timer.scheduledTimer(timeInterval: 10.0, target: self, selector: #selector(pagingAction), userInfo: nil, repeats: true)
- }
- func setUpUIView() {
- //View Navigation
- viewNav.addNavigation(sourceController: self)
- self.view.addSubview(viewNav)
- viewNav.isHidden = false
- viewNav.setNavProperties(navTitle:kHelp,navBgImage:"nav_bg",btnLeftTitle:"",btnRightFirstTitle:"",btnRightSecondTitle:"",btnLeftImg:"ic_home",btnRightFirstImg:"",btnRightSecondImg:"", strNotification: "", btnleftSecondTitle: "", btnleftSecondImg: "")
- viewNav.btnNavLeft.addTarget(self, action: #selector(btnHomeAction(sender:)), for: .touchUpInside)
- // arrImages = ["star.png","star (1).png","star.png","star (1).png","star.png","star (1).png","star.png","star (1).png"]
- intGetLastPageno = 0
- if IS_IPHONE{
- arrImages = QGGetHelpScreenUtility().arrIphoneHomeScreen(getNumber: 22, getVC: self)
- }
- else{
- arrImages = QGGetHelpScreenUtility().arrIpadHomeScreen(getNumber: 33, getVC: self)
- }
- let pageCount : CGFloat = CGFloat(arrImages.count)
- pageControl.numberOfPages = Int(pageCount)
- pageControl.addTarget(self, action: #selector(pageControlChanged(sender:)), for: .valueChanged)
- collViewPaging.showsHorizontalScrollIndicator = false
- collViewPaging.showsVerticalScrollIndicator = false
- boolIsCallFromOtherVC = false
- if boolIsCallFromOtherVC == false{
- constantColViewTop.constant = 64.0
- }
- else{
- constantColViewTop.constant = 0
- }
- }
- func callFromOtherVC(isScreenShown:Bool,getArrForScreen:[String],getVC:UIViewController,completionHandler:@escaping (Int) -> Void){
- boolIsCallFromOtherVC = true
- constantColViewTop.constant = 0
- viewNav.isHidden = true
- arrImages.removeAll()
- arrImages = getArrForScreen
- objCompletionHandler = completionHandler
- let pageCount : CGFloat = CGFloat(arrImages.count)
- pageControl.numberOfPages = Int(pageCount)
- collViewPaging.reloadData()
- // DispatchQueue.main.asyncAfter(deadline: .now() + 20.0) {
- // self.objCompletionHandler!(self.intGetLastPageno)
- // }
- }
- //MARK: - UICollectionview Datasource Delegate Methods
- public func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int{
- return arrImages.count
- }
- public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell{
- let aCellPaging : QGHelpCollViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: "helpCellId", for: indexPath) as! QGHelpCollViewCell
- aCellPaging.imgViewPaging.image = UIImage(named:arrImages[indexPath.row])
- return aCellPaging
- }
- //MARK:- Collection view layout size for item at indexpath
- func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
- return CGSize(width:collViewPaging.frame.size.width, height:collViewPaging.frame.size.height)
- }
- // MARK:- Button action
- //paging Action with timer
- func pagingAction() {
- var pageWidth = CGFloat()
- pageWidth = collViewPaging.frame.size.width
- var contentOffsetNew = CGFloat()
- contentOffsetNew = collViewPaging.contentOffset.x
- let value1 = contentOffsetNew
- let value2 = pageWidth
- let value3 = CGFloat(value1)/value2
- pageControl.currentPage = Int(value3)+1
- let cellSize = CGSize(width: FRAME_WIDTH, height: FRAME_HEIGHT)
- let contentOffset = collViewPaging.contentOffset
- collViewPaging.scrollRectToVisible(CGRect(x:contentOffset.x + cellSize.width, y: contentOffset.y, width: cellSize.width, height: cellSize.height), animated: true)
- intGetLastPageno = pageControl.currentPage
- if pageControl.currentPage == (arrImages.count-1){
- removeTimer()
- if boolIsCallFromOtherVC == true{
- self.objCompletionHandler!(self.intGetLastPageno)
- }
- }
- }
- //Home Button Action
- func btnHomeAction(sender:UIButton) {
- removeTimer()
- _ = navigationController?.popViewController(animated: true)
- }
- //paging Action
- func pageControlChanged(sender:Any?) {
- removeTimer()
- let pageWidth = collViewPaging.frame.size.width
- // print(pageControl1.currentPage)
- print(pageControl.currentPage)
- let point1 = CGPoint(x:pageWidth * CGFloat(pageControl.currentPage),y:0)
- collViewPaging.setContentOffset(point1, animated: true)
- }
- @IBAction func btnOkGetItAction(_ sender: Any) {
- if boolIsCallFromOtherVC == true{
- self.objCompletionHandler!(self.intGetLastPageno)
- }
- else
- {
- removeTimer()
- _ = navigationController?.popViewController(animated: true)
- }
- }
- //Stop Timer
- func removeTimer()
- {
- // stop Timer
- timer.invalidate()
- }
- //MARK:- Scrollview method
- func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
- removeTimer()
- var pageWidth = CGFloat()
- pageWidth = collViewPaging.frame.size.width
- var contentOffset = CGFloat()
- contentOffset = collViewPaging.contentOffset.x
- let value1 = contentOffset
- let value2 = pageWidth
- let value3 = value1 / value2
- pageControl.currentPage = Int(value3)
- intGetLastPageno = pageControl.currentPage
- if (intGetLastPageno == arrImages.count - 1){
- if boolIsCallFromOtherVC == true{
- DispatchQueue.main.asyncAfter(deadline: .now() + 3.0) {
- self.objCompletionHandler!(self.intGetLastPageno)
- }
- }
- }
- }
- override func didReceiveMemoryWarning() {
- super.didReceiveMemoryWarning()
- // Dispose of any resources that can be recreated.
- }
- }
Add Comment
Please, Sign In to add comment