Objective--C UIScrollView & UIPageControl 学习笔记

添加一组图片到工程中


// 签协议

@interface RootViewController ()<UIScrollViewDelegate>


// 设置属性

@property(nonatomic,retain)UIScrollView *scrollView;

@property(nonatomic,retain)UIPageControl *page;




@end




// 设置滚动视图

    // 7张图的相册,尺寸是屏幕高的一半,宽是屏幕宽

    self.scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, WIDTH, HEIGHT/2 +100)];

    self.scrollView.backgroundColor = [UIColor brownColor];

    [self.view addSubview:_scrollView];

    [_scrollView release];


// 滚动视图存放7张图片

    self.scrollView.contentSize =CGSizeMake(7 * WIDTH, 0);


// 利用循环,将七张图片添加到滚动视图中

    for (NSInteger i = 1; i < 8; i++) {

        

        NSString *picName = [NSString stringWithFormat:@"h%ld.jpeg",i];

        UIImage *image = [UIImage imageNamed:picName];

        

        UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(WIDTH * (i - 1), 0, WIDTH, HEIGHT/2 + 100)];

        imageView.image = image;

        [self.scrollView addSubview:imageView];

        [imageView release];

    }




// 设置在拖拽图片的时候是否锁定,如果是NO,会出现拖拽一张,滚动好几张的情况

    self.scrollView.pagingEnabled = YES;

    // 设置是否回弹.如果是YES,首张图片和尾图片在拖拽时会回弹,露出底下的scrollView的颜色

    self.scrollView.bounces = NO;

    

    // 设置水平下划线.YES出现,NO隐藏

    self.scrollView.showsHorizontalScrollIndicator = NO;

    // 设置垂直的下划线(图片拖动时的划线)

    self.scrollView.showsVerticalScrollIndicator = NO;




// 设置滚动视图下面的滑动图

    self.page = [[UIPageControl alloc] initWithFrame:CGRectMake(120, HEIGHT/2 + 100, 150, 50)];

    self.page.backgroundColor = [UIColor redColor];

    [self.view addSubview:self.page];

    [_page release];

    

    // 与图片张数对应

    self.page.numberOfPages = 7;

    // 所有页面点的颜色

    self.page.pageIndicatorTintColor = [UIColor blackColor];

    // 当前页面点的颜色

    self.page.currentPageIndicatorTintColor = [UIColor greenColor];



// 点击pagecontrol,改变偏移量

    // 通过偏移量,实现图片滑动,滑动图上得点也跟着动

    [self.page addTarget:self action:@selector(click:) forControlEvents:UIControlEventValueChanged];




// 设置协议代理人

    self.scrollView.delegate = self;

    

    // 设置最大缩放比例

    self.scrollView.maximumZoomScale = 2;

    // 设置最小缩放比例

    self.scrollView.minimumZoomScale = 0.5;




// 控制缩放的方法

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{


    UIView *view = scrollView.subviews[(NSInteger)scrollView.contentOffset.x / (NSInteger)WIDTH];

    

    // 只要进行缩放,系统就会修改ScrollViewcontentSize的值,所以当缩小之后,没有办法再进行拖拽

    NSLog(@"%g",scrollView.contentSize.width);

    

    return view;

}





- (void)click:(UIPageControl *)page{


    // 偏移量

    self.scrollView.contentOffset = CGPointMake(WIDTH * page.currentPage, 0);

}


- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{


    _page.currentPage = self.scrollView.contentOffset.x / WIDTH;

}









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值