Как добавить и удалить представление в UIscrollview во время выполнения? - PullRequest
2 голосов
/ 12 июля 2011

Мой проект должен добавить и удалить uiwebview к uiscrollview во время выполнения. Значит, когда мы прокручиваем его по горизонтали (влево или вправо), когда включена подкачка страниц, то новое представление добавляется в представление uiscroll и оно переходит к нему.

Можно ли обнаружить левую или правую прокрутку в просмотре uiscroll?

Плз, скажите мне самое лучшее решение, пример кода или любой учебник.

Заранее спасибо

1 Ответ

3 голосов
/ 12 июля 2011

В таких случаях мы должны включить подкачку в нашем представлении прокрутки.

Допустим, у вас есть представление прокрутки размером 320x480, и оно должно отображать 10 страниц, где размер каждой страницы составляет 320x480, что делает размер содержимого представления прокрутки равным 320 * 10 x 480.

Лучший способ определить текущую страницу - использовать значение смещения содержимого представления прокрутки. Итак, в начале, когда scrollview показывает 1-ю страницу, его смещение содержимого будет равно x = 0, y = 0.

Для 2-й страницы х = 320, у = 0. Таким образом, мы можем получить текущее значение страницы, разделив contentOffset.x на ширину страницы. Таким образом, 0/320 = 0 означает 1-ю страницу. 320/320 = 1, означает 2-ю страницу и т. Д.

Таким образом, если у нас есть текущее значение страницы, мы можем определить, в каком направлении движется представление прокрутки, следующим образом:

-(void) scrollViewDidScroll:(UIScrollView *)scrollView{

    int currentPageOffset = currentPage * PAGE_WIDTH;
    if (self.pageScrollView.contentOffset.x >= currentPageOffset + PAGE_WIDTH) {
        // Scroll in right direction. Reached the next page offset.
        // Settings for loading the next page.
        currentPage = self.pageScrollView.contentOffset.x/PAGE_WIDTH;
    }else if (self.pageScrollView.contentOffset.x <= currentPageOffset - PAGE_WIDTH) {
        // Scroll in left direction. Reached the previous page offset.
        // Setting for loading the previous page.
        currentPage = self.pageScrollView.contentOffset.x/PAGE_WIDTH;
    }

}
...