Как вызвать didSelectItemAtIndexPath в ячейке выбранного центра, как только свиток заканчивается на ios swift?

Вам не нужно взаимодействовать с управляемым кодом, так как вы можете использовать LIKE :

CREATE TABLE #Sample(Field varchar(50), Result varchar(50))
GO
INSERT INTO #Sample (Field, Result) VALUES ('ABC123 ', 'Do not match')
INSERT INTO #Sample (Field, Result) VALUES ('ABC123.', 'Do not match')
INSERT INTO #Sample (Field, Result) VALUES ('ABC123&', 'Match')
SELECT * FROM #Sample WHERE Field LIKE '%[^a-z0-9 .]%'
GO
DROP TABLE #Sample

Когда ваше выражение заканчивается на +, вы можете пойти с '%[^a-z0-9 .][^a-z0-9 .]%'

EDIT: сделать ясно: SQL Server не поддерживает регулярные выражения без управляемого кода. В зависимости от ситуации оператор LIKE может быть опцией, но ему не хватает гибкости, которую предоставляют регулярные выражения.

1
задан PvDev 13 July 2018 в 10:21
поделиться

1 ответ

Если вы посмотрите на 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, если ячейка действительно изменилась, а не просто скользящая он немного, но остается на текущей ячейке), но это отправная точка.

1
ответ дан DonMag 17 August 2018 в 13:10
поделиться
Другие вопросы по тегам:

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