// 初始化
self.scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(20, 20, 280, 440)];
scrollView 的一些設定
// 設定滾動的範圍
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];
}