UIPageControl

来源:互联网 发布:淘宝上的情蛊靠谱吗 编辑:程序博客网 时间:2024/05/22 15:40

UIPageControl属性

1.属性比较简单,关键是target方法,实现和图片和page的关联

 self.page.numberOfPages = 7;    // 还没有移动的点的颜色    self.page.pageIndicatorTintColor = [UIColor redColor];    // 当前点的颜色    self.page.currentPageIndicatorTintColor = [UIColor yellowColor];    [self.page addTarget:self action:@selector(pageAction:) forControlEvents:UIControlEventValueChanged];
// page的方法- (void)pageAction:(UIPageControl *)page{//    NSLog(@"121212121");//    NSLog(@"%ld", self.page.currentPage);    // 偏移量   self.scrollView.contentOffset = CGPointMake(WIDTH * self.page.currentPage, 0);}
2.如果要实现滑动图片,page的点也会随着变化,需要在scrollView协议中实现

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{  self.page.currentPage = self.scrollView.contentOffset.x / WIDTH;}
用UIScrollView实现缩放(用属性)

 // 设置最大的缩放比例    self.scrollView.maximumZoomScale = 2;    // 最小的缩放比例    self.scrollView.minimumZoomScale = 0.5;
// 控制缩放的方法- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{    UIView *view = scrollView.subviews[(NSInteger)scrollView.contentOffset.x / (NSInteger)WIDTH];    // 只要进行缩放,系统就会修改scrollview的contentsize的值,所以当缩小之后,没有办法进行拖拽    // 解决办法:在大的scrollerview上铺小的scrollerview,小的只负责进行缩放            NSLog(@"%g", scrollView.contentSize.width);    return view;}
缩放时,系统会修改content size的值,所以缩小的时候没有办法进行拖拽

解决办法是在大的scrollView上铺小的scrollView

// 缩放- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{//    UIView *view = scrollView.subviews[(NSInteger) self.scrollView.contentOffset.x /(NSInteger)( WIDTH / 2)];//    return view;    UIImageView *imageView = [scrollView.subviews objectAtIndex:0];//    NSLog(@"%@", scrollView.subviews);    return imageView;}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{    if (self.scrollView.contentOffset.x == WIDTH / 2 * 10) {        self.scrollView.contentOffset = CGPointMake(WIDTH / 2, 0);    } else if (self.scrollView.contentOffset.x == 0){        self.scrollView.contentOffset = CGPointMake(WIDTH / 2 * 9, 0);    }    self.page.currentPage = self.scrollView.contentOffset.x / (WIDTH / 2) - 1;    // 滚动结束把视图缩放成原有大小    for (UIScrollView *sView in scrollView.subviews) {        if ([sView isKindOfClass:[UIScrollView class]]) {            sView.zoomScale = 1.0;                    }    }}
以后可以直接拿来使用.记得设置小的scrollerview缩放的属性




  

0 0