2011-03-04 58 views
0

是否有编程控制UIScrollView的方法?如同为它的位置获取价值,那么滚动多少东西并改变它的位置,以编程方式滚动它?编程控制UIScrollView

希望你能帮忙,谢谢。

回答

4

我不知道@Alexandergre或@JAgostoni中的任何一个是t一直在聊。在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滚动到x轴上的20,y和320x480高度和宽度上的20。

如果你想获得它自己的视图信息(例如什么框架可见),你应该使用UIView的方法和属性,因为它是UIScrollView的父对象。 退房在UIView的文档:http://developer.apple.com/library/ios/#documentation/uikit/reference/UIView_Class/UIView/UIView.html

要获得可见的框架,使用

myScrollView.frame; 

不要与内容大小

myScrollView.contentSize; 

混合起来不过,正如我所说的。 使用文档!

-1

是的。看看这篇文章,并让我知道它是否有帮助:http://jason.agostoni.net/2011/02/12/ipad-resize-view-to-account-for-keyboard/

这是专门为处理键盘,但我在那里解释如何获取滚动位置和设置等,在苹果的文档的帮助下, 当然。

+0

我想你回答了错误的问题? – pt2ph8 2011-03-05 00:14:43

+0

以为我曾经。我链接的帖子引用了上面的文档以及如何滚动UIScrollView。我应该更具体。 – JAgostoni 2011-03-05 03:18:56

1

如果你想滚动您可以scrolll使用

scrollView.contentOffset = CGPointMake(x, y); 

的UIScrollView的是动画使用的UIView动画

[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

这是非常错误的。在我的帖子中看到一个例子。 – Jensen2k 2011-03-05 00:16:11

0
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]; 

     } 
     } 
    }