У меня есть горизонтальный UIScrollview настроен (это означает, что он не один, который прокручивается вверх и вниз, но тот, который только прокручивает влево-вправо), и при запуске приложения я хочу, чтобы этот прокрутка просматривал себя слева, а затем правый - вид «демонстрируя» свою способность прокручивать - и, наконец, останавливается, позволяя пользователю затем взять и управлять свитком вручную пальцем. Все работает - за исключением этой демонстрации прокрутки влево-влево.Как вы программно заставляете прокрутку использовать UIScrollView?
Я не использую Interface Builder для любого из этого, я делаю все с кодом:
//(this is in viewDidLoad:)
// Create the scrollView:
UIScrollView *photosScroll = [[UIScrollView alloc] initWithFrame: CGRectMake(0, 0, 320, 200)];
[photosScroll setContentSize: CGSizeMake(1240, 200)];
// Add it as a subview to the mainView
[mainView addSubview:photosScroll];
// Set the photoScroll's delegate:
photosScroll.delegate = self;
// Create a frame to which to scroll:
CGRect frame = CGRectMake(10, 10, 80, 150);
// Scroll to that frame:
[photosScroll scrollRectToVisible: frame animated:YES];
Так Нагрузки Scrollview успешно, и я в состоянии прокрутить влево и вправо с помощью пальца - но он не делает этого «автопрокрутки», как я надеялся.
- Я пытался называть scrollRectToVisible до и после добавления Scrollview как подвид - не работает.
- Возможно, это должно произойти произойти в loadView и не в viewDidLoad? Но если да, то как?
Любые идеи?
Вы имеете в виду что-то вроде этого? CGRect frame = CGRectMake (800, 0, 800, 150); [photosScroll scrollRectToVisible: frame animated: YES]; frame = CGRectMake (0, 0, 800, 150); [photosScroll scrollRectToVisible: frame animated: YES]; потому что это не сработало ... – sirab333
Для # 1, да, но вам не нужно делать 'frame' вы прокручиваете до размера всего вида. Вы можете сделать 'CGRectMake (800, 0, 1, 1)', если хотите, а затем 'CGRectMake (0, 0, 1, 1)'. Чтобы прокрутить область с 800 пикселей до 1600 пикселей, вы можете прокрутить до «(1599, 0, 1, 1)», а затем прокрутить область от 0 до 800 обратно на просмотр, вы можете прокрутить до «(0 , 0, 1, 1). – darvids0n
oh ok давайте попробуем это в viewDidAppear ... – sirab333