Как работать с управлением страницей с помощью NSTimer для автоматической прокрутки в swift4 - PullRequest
0 голосов
/ 15 марта 2019

Я новичок в iOS. Я пытаюсь выполнить контроль страницы с помощью NSTimer для автоматической прокрутки, а также хочу изменить форму точек в элементе управления страницей. Мне нужен контроль страницы с прямоугольными прямоугольниками. Если кто-нибудь мне поможет, я быбудь великим.

Ответы [ 2 ]

0 голосов
/ 15 марта 2019

Попробуйте это

var index = 0    
let timer = Timer.scheduledTimer(timeInterval: 0.4, target: self, selector: #selector(self.update), userInfo: nil, repeats: true)

func update()  {
    index = index + 1
    let x = CGFloat(index) * scrollView.frame.size.width
    scrollView.setContentOffset(CGPoint(x:x, y:0), animated: true)
}
0 голосов
/ 15 марта 2019

У меня есть пример для автопрокрутки в виде коллекции, например ganna.com в приложениях для iOS или Android.

Для Swift 4.2

код:

var timer: Timer?

@IBOutlet weak var collectionView : UICollectionView!
@IBOutlet weak var pageControl: UIPageControl!

override func viewDidLoad() {
    super.viewDidLoad()
    collectionView.reloadData()
    startTimer()
}

func startTimer() {
    timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(scrollAutomatically), userInfo: nil, repeats: true)
}


@objc func scrollAutomatically(_ timer1: Timer) {
    for cell in collectionView.visibleCells {
        if banner.count == 1 {
            return
        }
        let indexPath = collectionView.indexPath(for: cell)!
        if indexPath.row < (banner.count - 1) {
            let indexPath1 = IndexPath.init(row: indexPath.row + 1, section: indexPath.section)
            collectionView.scrollToItem(at: indexPath1, at: .right, animated: true)
            pageControl.currentPage = indexPath1.row
        }
        else {
            let indexPath1 = IndexPath.init(row: 0, section: indexPath.section)
            collectionView.scrollToItem(at: indexPath1, at: .left, animated: true)
            pageControl.currentPage = indexPath1.row
        }
    }
}

banner.Count => количество ячеек, содержащих представление коллекции

Надеюсь, вы найдете это полезным.

...