#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:
Попробуйте эти,
-
Установите свой scrollview
contentSize
(должен быть выше, чемframe
)self.ScrollView.contentSize = CGSizeMake(320, 900);
-
Снимите
autoLayout
флажок в xib -
Присвоите делегату и
setScrollEnabled
свойству значение true.
[self.scrollView setDelegate:self];
> [self.scrollView setScrollEnabled:YES];
Примечание: задайте только начальную видимую область как frame
, а общий размер содержимого как contentSize
.
Комментарии:
1. я сделал все, как вы упомянули, но без толку. В моем случае у меня мало меток в scrollview, когда я прокручиваю scrollview, он должен прокручиваться в соответствии с шириной метки (160).
2. @Javeed: устанавливайте только начальную видимую область в качестве «рамки», а общий размер содержимого — в качестве contentSize.