UIScrollView автоматически прокручивается при обновлении UIView внутри него

#iphone #xcode #uiscrollview #ios5

#iPhone #xcode #uiscrollview #ios5

Вопрос:

У меня большая проблема. Я создаю приложение с UITableView, где UIScrollView находится внутри каждой ячейки. Управление страницей UIScrollView включено и реализовано как пример по умолчанию в библиотеке разработчика Apple.

И даже если в примере Apple все работает нормально, у меня проблема с моей программой. Каждый раз, когда я обновляю содержимое UIView, которое в данный момент не представлено в UIScrollView (например, UIScrollView находится на странице 1, и я обновляю содержимое UIView на странице 2), UIScrollView автоматически прокручивается до этого представления (с анимацией). Интересно, что прокрутка останавливается где-то между этими двумя представлениями.

Итак, это мой код:

    if (controller.view.superview == nil)
    {
        CGRect frame = scrollView.frame;
        frame.origin.x = frame.size.width * page;
        frame.origin.y = 0;
        controller.view.frame = frame;            
        [scrollView addSubview:controller.view];    
        [controller.label setText:@"some text"];     


    }
  

И если я сделал это в примере Apple, все работает нормально, в моем коде (где UIScrollView находится внутри UITableViewCell) он автоматически прокручивается в какую-то странную позицию.

Есть идеи?

Комментарии:

1. Почему вы должны обновлять представление, которое не видно?

2. Потому что новый контент должен быть представлен в представлении, когда пользователь начнет прокрутку. Это стандартная процедура в примере управления подкачкой от Apple.

3. Вы нашли решение? Я работаю над приложением, у которого есть эта проблема на iOS5, а не на iOS6….

Ответ №1:

почему, потому что, если вы перемещаете parentviewcontroller, автоматически перемещаются и дочерние классы.Итак, снова установите рамку для uiscrollview

Комментарии:

1. Я вас не понимаю. Я не перемещаю родительский элемент UIScrollView, я ничего не перемещаю. Я просто меняю текст UILabel внутри UIView внутри UIScrollView. И из-за этого UIScrollView автоматически прокручивается с анимацией в некоторой неопределенной позиции.