Как остановить UIScrollView при оставлении касания

#objective-c #uiscrollview

#objective-c #uiscrollview

Вопрос:

Я создал UIScrollView с некоторым UIButton внутри. Проблема в том, что когда я прокручиваю вниз в конце просмотра, он возвращается при запуске. Что я могу сделать? Я использую это в viewDidLoad:

 - (void)viewDidLoad
{
    [super viewDidLoad]; // step 3
    scroll.scrollEnabled=YES;
    scroll.contentSize = [self.view sizeThatFits:CGSizeZero];
}
  

Ответ №1:

Согласно документации Apple: sizeThatFits возвращает размерную часть прямоугольника границ представления.

Таким образом, размер содержимого вашего вида прокрутки совпадает с размером UIView, поэтому вид прокрутки возвращается в исходное положение. Вам нужно установить высоту размера содержимого на общую высоту всего вашего содержимого в режиме прокрутки. Обычно это больше, потому что в противном случае не имеет смысла использовать UIViewController.

Итак, используйте что-то подобное, и это должно сработать:

 - (void)viewDidLoad
{
    [super viewDidLoad]; // step 3
    scroll.scrollEnabled=YES;
    CGSize scrollViewSize = [self.view sizeThatFits:CGSizeZero];
    scrollViewSize.height = 800.0; // Set here the height of the total area of your ScrollView. Should be bigger than the visible area.
    scroll.contentSize = scrollViewSize;
}
  

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

1. извините меня, но я пытаюсь, и ничего не меняется.. в противном случае он останавливается раньше и не отображает весь вид:(

2. значение 800.0 было примером, если высота вашего содержимого больше, установите его высоту больше.

3. я использовал 750 .. потому что я вижу в IB, что высота представления такая