// 初始化
self.scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(20, 20, 280, 440)];
// 设置滚动的范围
self.scrollView.contentSize = CGSizeMake(280 * 4, 0);
// 屏幕左上角距离坐标原点的偏移量 scrollView相对于滚动范围的坐标
self.scrollView.contentOffset = CGPointMake(100, 100);
// 可滚动的范围距离上左下右的距离
self.scrollView.contentInset = UIEdgeInsetsMake(100, 50, 0, 0);
// 边界是否回弹 默认YES
self.scrollView.bounces = NO;
// 滑动到顶部(点状态条的时候)
self.scrollView.scrollsToTop = YES;
// 是否允许用户滚动
self.scrollView.scrollEnabled = NO;
// 是否整屏翻动
self.scrollView.pagingEnabled = YES;
// 控制是否显示水平方向的滚动条
// 指示条 实际上是加在scrollView上的两个imageView
self.scrollView.showsHorizontalScrollIndicator = NO;
// 控制是否显示垂直方向的滚动条
self.scrollView.showsVerticalScrollIndicator = NO;
// scrollView的协议
// 1,签订协议
// 2,指定代理
self.scrollView.delegate = self;
// scrollView放大缩小
// 1,设置scrollView缩放的范围
self.scrollView.maximumZoomScale = 2.0; // 最大2倍
self.scrollView.minimumZoomScale = 0.5;
[self.view addSubview:self.scrollView];
[_scrollView release];
scrollView的协议方法
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
NSLog(@"%@", NSStringFromCGPoint(scrollView.contentOffset));
NSLog(@"偏移量改变");
// 偏移量改变的时候,计算当前的页数
int pageNumber = scrollView.contentOffset.x / scrollView.frame.size.width;
// 通过偏移量改变pageControl的值
self.pageControl.currentPage = pageNumber;
}
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
NSLog(@"将要开始拖拽");
}
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
NSLog(@"已经结束拖拽");
}
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
{
NSLog(@"将要开始减速");
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
NSLog(@"已经减速停止");
}
UIPageController 页码
self.pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(20, 20, 280, 50)];
self.pageControl.backgroundColor = [UIColor blackColor];
// 页数
self.pageControl.numberOfPages = 4;
// 设置小圆点的颜色
self.pageControl.currentPageIndicatorTintColor = [UIColor greenColor];
// 未被选中点的颜色
self.pageControl.pageIndicatorTintColor = [UIColor redColor];
// 绑定一个方法
[self.pageControl addTarget:self action:@selector(pageControlAction:) forControlEvents:UIControlEventValueChanged];
// self.pageControl.currentPage = 4;
[self.view addSubview:self.pageControl];
[_pageControl release];
- (void)pageControlAction:(UIPageControl *)pageControl
{
NSLog(@"当前页:%d",
pageControl.currentPage);
// 计算scrollView的偏移量
CGFloat xOffset = pageControl.currentPage * 280;
CGPoint offset = CGPointMake(xOffset, 0);
// [self.scrollView setContentOffset:offset animated:YES];
self.scrollView.contentOffset = offset;
}
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
// 返回一个view 跟着scrollView缩放
// 1,会把contentSize 设置为view的大小
// 2,同时只能有一个view跟着scrollView缩放
return [scrollView.subviews firstObject];
}