1、UIScrollViewatom
1.contentSize:UIScrollView可滾動的範圍代理
[self.scroll setContentSize:CGSizeMake((KNumberOfPages + 2) * imageWidth, imageHeight)];
2.contentOffset:UIScrollView原點在contentSize上的位置code
self.scroll.contentOffset = CGPointMake(imageWidth, 0);
3.contentInset:UIScrollView四周的擴展範圍orm
4.PagingEnabled:是否有分頁效果圖片
[self.scroll setPagingEnabled:YES];
5.scrollEnabled:是否有滾動效果get
[self.scroll setScrollEnabled:YES];
5.showsHorizontalScrollIndicator:是否顯示水平滾動條animation
[self.scroll setShowsHorizontalScrollIndicator:YES];
6.bounces:是否有彈簧效果string
[self.scroll setBounces:NO];
7.縮放:1.設置代理<UIScrollViewDelegate>it
2.設置最大、最小縮放比例io
self.myScrollerView.minimumZoomScale = 0.5; self.myScrollerView.maximumZoomScale = 2;
3.實現縮放代理方法,指定縮放的子視圖
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{}
2、UIPageControl
注:必定要用initWithFrame初始化,否則不能換頁
1.numberOfPages設置頁數
[self.pageControl setNumberOfPages:KNumberOfPages];
2.currentPage設置當前頁
[self.pageControl setCurrentPage:0];
3.pageIndicatorTintColor設置普通頁指示器的顏色
[self.pageControl setPageIndicatorTintColor:[UIColor blackColor]];
4.currentPageIndicatorTintColor設置當前頁指示器的顏色
小例子:實現5張圖片的循環滾動
#define KNumberOfPages 5 @interface ViewController () @property (nonatomic, strong) UIScrollView *scroll; @property (nonatomic, strong) NSMutableArray *imageArray; @property (nonatomic, strong) UIPageControl *pageControl; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; self.imageArray = [NSMutableArray array]; CGFloat imageWidth = self.view.frame.size.width; CGFloat imageHeight = self.view.frame.size.height; self.scroll = [[UIScrollView alloc] initWithFrame:self.view.bounds]; [self.scroll setPagingEnabled:YES]; [self.scroll setBounces:NO]; [self.scroll setShowsHorizontalScrollIndicator:YES]; [self.scroll setContentSize:CGSizeMake((KNumberOfPages + 2) * imageWidth, imageHeight)]; [self.imageArray addObject:[UIImage imageNamed:@"5.jpg"]]; for (NSInteger i = 0; i < KNumberOfPages; i++) { UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg", i + 1]]; [self.imageArray addObject:image]; } [self.imageArray addObject:[UIImage imageNamed:@"1.jpg"]]; NSLog(@"%@", self.imageArray); for (NSInteger i = 0; i < KNumberOfPages + 2; i++) { UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(i * imageWidth, 0, imageWidth, imageHeight)]; imageView.image = self.imageArray[i]; [self.scroll addSubview:imageView]; } self.scroll.contentOffset = CGPointMake(imageWidth, 0); self.scroll.delegate = self; [self.view addSubview:self.scroll]; self.pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(0, 400, 320, 440)];//不這樣初始化就沒法點擊 [self.pageControl setCenter:CGPointMake(160, 420)]; [self.pageControl setNumberOfPages:KNumberOfPages]; [self.pageControl setCurrentPage:0]; [self.pageControl setPageIndicatorTintColor:[UIColor blackColor]]; [self.pageControl addTarget:self action:@selector(pageDidClicked) forControlEvents:UIControlEventValueChanged]; [self.view addSubview:self.pageControl]; } - (void)pageDidClicked{ [self.scroll setContentOffset:CGPointMake((self.pageControl.currentPage + 1) * 320, 0) animated:YES]; } //結束減速 - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ if (self.scroll.contentOffset.x == 0) { [self.scroll setContentOffset:CGPointMake(KNumberOfPages * 320, 0)]; }else if (self.scroll.contentOffset.x == (KNumberOfPages + 1) * 320){ [self.scroll setContentOffset:CGPointMake(320, 0)]; } [UIView animateWithDuration:0.5 animations:^{ NSInteger number = self.scroll.contentOffset.x / 320; self.pageControl.currentPage = number - 1; }]; } @end