UIScrollView

UIScrollView提供了一个非常方便的方法,从而不必担心屏幕大小的限制,对于用户来说是个很好的体验。

先创建一个ScrollView

 UIScrollView *scroll=[[UIScrollView alloc] initWithFrame:CGRectMake(60, 20,200, 200)];

要设定contentsize:内容大小,实现滚动效果,这个尺寸必须大于刚才设置的FRAME

在ScrollView上面添加ImageView根据每个图片的大小,以及拥有几张图片设定contentsize:的尺寸

此处我使用了四张图片,宽高均为200,一共四张图,所以 [_scroll setContentSize:CGSizeMake(800, 200)];//_scroll设置为成员变量

为了一次拖拽为你设置的偏移量,在这里是200需要加下面这句话

[_scroll setPagingEnabled:YES];


UIScrollView有一个协议<UIScrollViewDelegate>

我在这里还添加了UIPageControl 为了在拖拽图片的时候下面的点点也跟着换位置,同样我也把他设置成了 成员变量

想要在拖拽图片的时候点点也变换正确的位置就要设置正确的偏移量

//控制页
    _page=[[UIPageControl alloc] initWithFrame:CGRectMake(10, 250, 300,40)];
    //设置几个点
    [_page setNumberOfPages:4];
    [_page setPageIndicatorTintColor:[UIColor blueColor]];
    [_page setCurrentPageIndicatorTintColor:[UIColor whiteColor]];
    [_page setBackgroundColor:[UIColor clearColor]];
    //设置当前页面为1,默认是0
    [_page setCurrentPage:1];
    [_page addTarget:self action:@selector(dragAction:) forControlEvents: UIControlEventValueChanged ];
    
    [self.view addSubview:_page];
    [_page release];


//滚动视图正在滚动
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
       //获得坐标,偏移量point
    CGPoint point =scrollView.contentOffset;
    //一个图片200,几个?
    NSInteger current =point.x /200;
    //控制页和图片连起来
    _page.currentPage =current;
   
    
    
    
}
//放大缩小
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
    NSArray * array = scrollView.subviews;
   
    UIImageView *image= [array objectAtIndex:0];
    return image;
}


- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
    NSLog(@"开始");
}
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
    NSLog(@"结束");
};
//拖拽点点的动作
-(void)dragAction:(id)sender{
    UIPageControl *page =(UIPageControl *)sender;
    NSLog(@"%d",page.currentPage);
    _scroll.contentOffset =CGPointMake(_page.currentPage *200, 0);
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值