мой код не будет выполнять часть if / elif в этом

Если вы посмотрите на ViewController.swift из демо, включенного в ** UPCarouselFlowLayout **, вы увидите функцию scrollViewDidEndDecelerating. Это срабатывает, когда прокрутка перестает двигаться, и ячейка становится «центральной» ячейкой.

В этой функции задана переменная currentPage, и здесь меняются метки ниже вида коллекции.

Итак, это one место, чтобы попробовать то, что вы хотите сделать.

Добавьте две строки, как показано здесь ... когда прокрутка останавливается, вы создаете IndexPath и ручным вызовом didSelectItemAt:

func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
    let layout = self.collectionView.collectionViewLayout as! UPCarouselFlowLayout
    let pageSide = (layout.scrollDirection == .horizontal) ? self.pageSize.width : self.pageSize.height
    let offset = (layout.scrollDirection == .horizontal) ? scrollView.contentOffset.x : scrollView.contentOffset.y
    currentPage = Int(floor((offset - pageSide / 2) / pageSide) + 1)

    // add these two lines      
    let indexPath = IndexPath(item: currentPage, section: 0)
    collectionView(self.collectionView, didSelectItemAt: indexPath)
}

Вы почти наверняка захотите добавить некоторую проверку ошибок и дополнительные функции (например, только вызов didSelect, если ячейка действительно изменилась, а не просто скользящая он немного, но остается на текущей ячейке), но это отправная точка.

-3
задан Cœur 17 February 2019 в 17:23
поделиться

1 ответ

причина в том, что rand генерирует целое число, тогда как вы сравниваете его со строкой.

Также

if rand == "1":
    print("randomly generating")
elif rand1 == "1":
    a1 = word[0]
    a2 = word[1]
    a3 = word[2]
    a4 = word[3]
    a5 = word[4]
    a6 = word[5]
    a7 = word[6]
    a8 = word[7]
    a9 = word[8]
    a10 = word[9]
    letters()

этот код кажется нелогичным, поскольку оба if всегда будут работать как rand. всегда равно 1 и elif никогда не побежит. все равно, что сказать что-то делать, а не делать это :) rip english

Попробуйте использовать

if rand == "1":
    print("randomly generating")
    if rand1 == "1":
        a1 = word[0]
        a2 = word[1]
        a3 = word[2]
        a4 = word[3]
        a5 = word[4]
        a6 = word[5]
        a7 = word[6]
        a8 = word[7]
        a9 = word[8]
        a10 = word[9]
        letters()

Надеюсь, что это поможет

0
ответ дан Talha Israr 17 February 2019 в 17:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: