是否有以编程方式控制UIScrollView的方法?如同,获取其位置的值,沿着它滚动多远并改变其位置,以编程方式滚动它?
答案 0 :(得分:4)
我不知道@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滚动到x轴上的20,y上的20和高度和宽度的320x480。
如果你想获取它自己的视图信息(例如哪个框架是可见的)你应该使用UIView中的方法和属性,因为它是UIScrollView的父级。 查看UIView文档:http://developer.apple.com/library/ios/#documentation/uikit/reference/UIView_Class/UIView/UIView.html
要获取可见的帧,请使用
myScrollView.frame;
请勿将其与内容大小混合
myScrollView.contentSize;
但是,正如我所说。 使用文档!
答案 1 :(得分:1)
您可以使用
滚动UIScrollViewscrollView.contentOffset = CGPointMake(x, y);
如果您希望动画滚动使用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;
答案 2 :(得分: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];
}
}
}
答案 3 :(得分:-1)
是的。看一下这篇文章,如果有帮助请告诉我:http://jason.agostoni.net/2011/02/12/ipad-resize-view-to-account-for-keyboard/
它专门用于处理键盘,但我在那里解释如何获得滚动位置并设置它等等。当然,在Apple的文档的帮助下。