Программно управлять UIScrollView - PullRequest
0 голосов
/ 05 марта 2011

Есть ли метод программного управления UIScrollView? Как, например, получить значение для его местоположения, так как далеко он прокручивается и вещи и меняют свою позицию, прокручивают его программно?

Ответы [ 4 ]

4 голосов
/ 05 марта 2011

Я не знаю, о чем говорят @Alexandergre или @JAgostoni. Прокрутка в UIScrollView действительно проста.

Я предлагаю вам взглянуть на документацию для UIScrollView: http://developer.apple.com/library/ios/#documentation/uikit/reference/UIScrollView_Class/Reference/UIScrollView.html

Чтобы прокрутить UIScrollView, просто используйте

- (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated

Пример:

[myScrollView scrollRectToVisible:CGRectMake(20, 20, 320, 480) animated:YES];

Это позволит прокрутить UIScrollView с анимацией до 20 по оси x, 20 по оси y и 320x480 по высоте и ширине.

Если вы хотите получить информацию о самом представлении (например, какой кадр является видимым), вы должны использовать методы и свойства из UIView, поскольку он является родительским для UIScrollView. Ознакомьтесь с документацией UIView по адресу: http://developer.apple.com/library/ios/#documentation/uikit/reference/UIView_Class/UIView/UIView.html

Чтобы получить видимый кадр, используйте

myScrollView.frame;

Не путать с размером контента

myScrollView.contentSize;

Но, как я уже сказал. Используйте документацию!

1 голос
/ 05 марта 2011

Вы можете прокрутить UIScrollView, используя

scrollView.contentOffset = CGPointMake(x, y);

Если вы хотите, чтобы прокрутка была анимированной, используйте UIview Animation

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.75];
[UIView setAnimationDelegate:self];
scrollView.contentOffset = CGPointMake(x, y);
[UIView commitAnimations];

Чтобы получить смещение содержимого, создайте CGPoint для получениязначение смещения:

CGPoint value;
value = scrollview.contentOffset;
0 голосов
/ 09 февраля 2016
Try this :-

 -(void)scrollViewDidEndDragging:(UIScrollView *)scrollView  willDecelerate:(BOOL)decelerate{
    //NSLog(@"%f %f", scrollView.contentOffset.y,  scrollView.contentSize.height);
 }
 -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
     //NSLog(@"scrollViewDidEndDecelerating");
 }
 -(void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView{
     //NSLog(@"scrollViewDidEndScrollingAnimation");
 }
//Update the value of rol
 -(void)scrollViewDidScroll:(UIScrollView *)scrollView{
     if(scrollView==MainScrollVw){//Main Scroll View All Fns Start,,,
         int rol_y= MainScrollVw.contentOffset.y;
         //int rol_x= MainScrollVw.contentOffset.x;

         if(rol_y>0){
            [UIView beginAnimations:nil context:nil];
            [UIView setAnimationDuration:.30];
            MainMenuVw.frame= CGRectMake(0 ,0 ,self.view.frame.size.width ,75);
            [UIView commitAnimations];

         }else{
            [UIView beginAnimations:nil context:nil];
            [UIView setAnimationDuration:.30];
            MainMenuVw.frame= CGRectMake(0 ,0 ,self.view.frame.size.width ,150);
            [UIView commitAnimations];

         }
      }
   }
0 голосов
/ 05 марта 2011

Да.Посмотрите на это сообщение и дайте мне знать, если это поможет: http://jason.agostoni.net/2011/02/12/ipad-resize-view-to-account-for-keyboard/

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...