之前写过一个不太理想的http://blog.csdn.net/take8619702/article/details/8020172,这是对其的完善,原理没有攺变
1.UIScrollView 初始化:
myScrollView = [[UIScrollViewalloc] initWithFrame:CGRectMake(0,0, 320,460)];
[myScrollViewsetBackgroundColor:[UIColor scrollViewTexturedBackgroundColor]];
[myScrollViewsetContentSize:CGSizeMake(320*10,0)];//作为测试,初始10页的完度
[myScrollViewsetPagingEnabled:YES];
[myScrollView setDelegate:self];
[self.viewaddSubview:myScrollView];
[myScrollView release];
2.此时需要添加两个成员变量,来作为是否存在暴力滑动,或者暴力测试的标志
int updateCount;
int _currentPage;
都初始化为0
3.实现UIScrollViewDelegate中的两个方法
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
int temp = floor((scrollView.contentOffset.x -MyPageWidth/2.0)/MyPageWidth +1);//判断是否翻页
if (temp != _currentPage) {
if (temp > _currentPage) {//下一页
} else {//上一页
}
updateCount++;
_currentPage = temp;
}
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
if (updateCount ==1) {
NSLog(@"正常加载");
} else {
NSLog(@"太暴力了");
}
updateCount = 0;
}
4.这样可以适用于什么场境?
- 在scrollview中加载很多内容时,可以在scrollViewDidEndDecelerating中加载
- 在scrollViewDidScroll中的上下页清除不可见视图,控制内存
DEMO: http://download.csdn.net/detail/take8619702/4840925