IOS--UIScrollView delegate 协议-
2013-08-08 17:17
381 查看
以下为该协议的相关方法:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView;
{
// NSLog(@" scrollViewDidScroll");
NSLog(@"ContentOffset x is %f,yis %f",scrollView.contentOffset.x,scrollView.contentOffset.y);
}
//开始拖拽视图
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;
{
NSLog(@"scrollViewWillBeginDragging");
}
//完成拖拽
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;
{
NSLog(@"scrollViewDidEndDragging");
// if (scrollView.contentOffset.x <= 110) {
// [scrollView setContentOffset:CGPointMake(0, 0) animated:YES];
// [ApplicationDelegate setPlayIndex:0];
// return;
// }
// if (scrollView.contentOffset.x > ( 110 + 210 * (ApplicationDelegate.programCount-2)))
// {
// [scrollView setContentOffset:CGPointMake(210 + 210 * (ApplicationDelegate.programCount-2), 0) animated:YES];
// [ApplicationDelegate setPlayIndex:ApplicationDelegate.programCount-1];
// return;
// }
for(int i =
0 ; i < ApplicationDelegate.programCount-2 ; i++){
if (scrollView.contentOffset.x > (110 + i *
210) && scrollView.contentOffset.x <= (
110 + 210 * (i+1)))
{
[scrollView setContentOffset:CGPointMake(210 +
210 * i, 0) animated:YES];
[ApplicationDelegate setPlayIndex:i+1];
NSLog(@"%d" , i);
//return;
}
}
}
//将开始降速时
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView;
{
NSLog(@"scrollViewWillBeginDecelerating");
}
//减速停止了时执行,手触摸时执行执行
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;
{
NSLog(@"scrollViewDidEndDecelerating");
if (scrollView.contentOffset.x <=
110) {
[scrollView setContentOffset:CGPointMake(0,
0) animated:YES];
[ApplicationDelegate setPlayIndex:0];
return;
}
if (scrollView.contentOffset.x > (
110 + 210 * (ApplicationDelegate.programCount-2)))
{
[scrollView setContentOffset:CGPointMake(210 +
210 * (ApplicationDelegate.programCount-2),
0) animated:YES];
[ApplicationDelegate setPlayIndex:ApplicationDelegate.programCount-1];
NSLog(@"over");
return;
}
for(int i =
0 ; i < ApplicationDelegate.programCount-2 ; i++){
if (scrollView.contentOffset.x > (110 + i *
210) && scrollView.contentOffset.x <= (
110 + 210 * (i+1)))
{
[scrollView setContentOffset:CGPointMake(210 +
210 * i, 0) animated:YES];
[ApplicationDelegate setPlayIndex:i+1];
//return;
}
}
}
//滚动动画停止时执行,代码改变时出发,也就是setContentOffset改变时
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView;
{
NSLog(@"scrollViewDidEndScrollingAnimation");
}
//设置放大缩小的视图,要是uiscrollview的subview
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;
{
NSLog(@"viewForZoomingInScrollView");
return
nil;
}
//完成放大缩小时调用
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale;
{
NSLog(@"scale between minimum and maximum. called after any 'bounce' animations");
}// scale between minimum and maximum. called after any 'bounce' animations
//如果你不是完全滚动到滚轴视图的顶部,你可以轻点状态栏,那个可视的滚轴视图会一直滚动到顶部,那是默认行为,你可以通过该方法返回NO来关闭它
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView;
{
NSLog(@"scrollViewShouldScrollToTop");
return
YES;
}
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView;
{
NSLog(@"scrollViewDidScrollToTop");
}
注意还要对使用的ScrollView进行属性设置
// scrollView的
长 宽
设置
self.programScrollView.contentSize=CGSizeMake(ApplicationDelegate.programCount *
210+10 ,
40);
// 是否分页显示
self.programScrollView.pagingEnabled=NO;
//协议
self.programScrollView.delegate=self;
// 监听手指动作
self.programScrollView.canCancelContentTouches=NO;
//延迟手指动作
self.programScrollView.delaysContentTouches=YES;
- (void)scrollViewDidScroll:(UIScrollView *)scrollView;
{
// NSLog(@" scrollViewDidScroll");
NSLog(@"ContentOffset x is %f,yis %f",scrollView.contentOffset.x,scrollView.contentOffset.y);
}
//开始拖拽视图
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;
{
NSLog(@"scrollViewWillBeginDragging");
}
//完成拖拽
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;
{
NSLog(@"scrollViewDidEndDragging");
// if (scrollView.contentOffset.x <= 110) {
// [scrollView setContentOffset:CGPointMake(0, 0) animated:YES];
// [ApplicationDelegate setPlayIndex:0];
// return;
// }
// if (scrollView.contentOffset.x > ( 110 + 210 * (ApplicationDelegate.programCount-2)))
// {
// [scrollView setContentOffset:CGPointMake(210 + 210 * (ApplicationDelegate.programCount-2), 0) animated:YES];
// [ApplicationDelegate setPlayIndex:ApplicationDelegate.programCount-1];
// return;
// }
for(int i =
0 ; i < ApplicationDelegate.programCount-2 ; i++){
if (scrollView.contentOffset.x > (110 + i *
210) && scrollView.contentOffset.x <= (
110 + 210 * (i+1)))
{
[scrollView setContentOffset:CGPointMake(210 +
210 * i, 0) animated:YES];
[ApplicationDelegate setPlayIndex:i+1];
NSLog(@"%d" , i);
//return;
}
}
}
//将开始降速时
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView;
{
NSLog(@"scrollViewWillBeginDecelerating");
}
//减速停止了时执行,手触摸时执行执行
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;
{
NSLog(@"scrollViewDidEndDecelerating");
if (scrollView.contentOffset.x <=
110) {
[scrollView setContentOffset:CGPointMake(0,
0) animated:YES];
[ApplicationDelegate setPlayIndex:0];
return;
}
if (scrollView.contentOffset.x > (
110 + 210 * (ApplicationDelegate.programCount-2)))
{
[scrollView setContentOffset:CGPointMake(210 +
210 * (ApplicationDelegate.programCount-2),
0) animated:YES];
[ApplicationDelegate setPlayIndex:ApplicationDelegate.programCount-1];
NSLog(@"over");
return;
}
for(int i =
0 ; i < ApplicationDelegate.programCount-2 ; i++){
if (scrollView.contentOffset.x > (110 + i *
210) && scrollView.contentOffset.x <= (
110 + 210 * (i+1)))
{
[scrollView setContentOffset:CGPointMake(210 +
210 * i, 0) animated:YES];
[ApplicationDelegate setPlayIndex:i+1];
//return;
}
}
}
//滚动动画停止时执行,代码改变时出发,也就是setContentOffset改变时
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView;
{
NSLog(@"scrollViewDidEndScrollingAnimation");
}
//设置放大缩小的视图,要是uiscrollview的subview
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;
{
NSLog(@"viewForZoomingInScrollView");
return
nil;
}
//完成放大缩小时调用
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale;
{
NSLog(@"scale between minimum and maximum. called after any 'bounce' animations");
}// scale between minimum and maximum. called after any 'bounce' animations
//如果你不是完全滚动到滚轴视图的顶部,你可以轻点状态栏,那个可视的滚轴视图会一直滚动到顶部,那是默认行为,你可以通过该方法返回NO来关闭它
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView;
{
NSLog(@"scrollViewShouldScrollToTop");
return
YES;
}
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView;
{
NSLog(@"scrollViewDidScrollToTop");
}
注意还要对使用的ScrollView进行属性设置
// scrollView的
长 宽
设置
self.programScrollView.contentSize=CGSizeMake(ApplicationDelegate.programCount *
210+10 ,
40);
// 是否分页显示
self.programScrollView.pagingEnabled=NO;
//协议
self.programScrollView.delegate=self;
// 监听手指动作
self.programScrollView.canCancelContentTouches=NO;
//延迟手指动作
self.programScrollView.delaysContentTouches=YES;
相关文章推荐
- ios-day05-03(实现UIScrollViewDelegate协议,监听ScrollView的缩放、滑动等状态)
- iOS: UIScrollViewDelegate Protocol的方法scrollViewDidEndDecelerating:
- iOS UIScrollViewDelegate
- 关于UIScrollViewDelegate协议中每个回调函数的
- 关于UIScrollViewDelegate协议中每个回调函数的意义及执行
- iOS: UIScrollViewDelegate Protocol的方法scrollViewDidEndScrollingAnimation:
- iOS: UIScrollViewDelegate Protocol的方法scrollViewWillBeginDecelerating:
- UIScrollViewDelegate协议方法概述
- IOS开发之UIScrollViewDelegate详解
- iOS: UIScrollViewDelegate Protocol的方法scrollViewDidEndZooming:withView:atScale:
- iOS: UIScrollViewDelegate Protocol的方法scrollViewWillBeginDragging:
- IOS UIScrollView 说明 和 UIScrollViewDelegate详解
- 关于UIScrollViewDelegate协议中每个回调函数的意义及执行
- iOS UIScrollView delegate 的Bug
- IOS开发之UIScrollViewDelegate详解
- 学习IOS开发UI篇--UIScrollView/delegate/pagecontrol/UITimer
- IOS开发之UIScrollViewDelegate详解
- iOS UIScrollViewDelegate详解
- UIScrollView的重要属性总结,以及UIScrollViewDelegate协议的使用
- iOS中UIScrollViewDelegate使用总结