objective-c: прокрутка в режиме прокрутки влево и вправо

#ios #iphone #objective-c #xcode #uiscrollview

#iOS #iPhone #objective-c #xcode #uiscrollview

Вопрос:

Как я могу прокрутить свой scrollview до определенной точки в обоих направлениях влево и вправо.Я пробовал использовать следующий фрагмент кода, но он вступает в бесконечный цикл.

 - (void)scrollViewDidScroll:(UIScrollView *)sender
{
    if (xCoord > scrollView.contentOffset.x )
    {
        scrollView.contentOffset = CGPointMake(xCoord   160, 0);
    }
    else if(xCoord < scrollView.contentOffset.x )
    {
        scrollView.contentOffset = CGPointMake(xCoord - 160, 0);
    }

    xCoord = scrollView.contentOffset.x;
}
  

Я просто хотел прокручивать свой scrollview на 160 дюймов в обоих направлениях всякий раз, когда пользователь перетаскивает экран.
В моем случае у меня мало меток в scrollview, когда я прокручиваю scrollview, он должен прокручиваться в соответствии с шириной метки (160).

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

1. Вы установили размер содержимого для вашего ScrollView?

2. Какова ширина вашего режима прокрутки?

3. @GenieWanted: я установил размер содержимого scrollview как ScrollView.contentSize = CGSizeMake(1280,65);

4. @iManan: 1280 — это ширина моего режима прокрутки

5. @Javeed: Итак, вы хотите прокручивать содержимое до 160 пикселей одновременно?

Ответ №1:

Попробуйте эти,

  1. Установите свой scrollview contentSize (должен быть выше, чем frame )

    self.ScrollView.contentSize = CGSizeMake(320, 900);

  2. Снимите autoLayout флажок в xib

  3. Присвоите делегату и setScrollEnabled свойству значение true.

  [self.scrollView setDelegate:self];
  
 > [self.scrollView setScrollEnabled:YES];
  

 Примечание: задайте только начальную видимую область как frame , а общий размер содержимого как contentSize .

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

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

2. @Javeed: устанавливайте только начальную видимую область в качестве «рамки», а общий размер содержимого — в качестве contentSize.