进击的KFC:UI(七)滚动视图 和 分页按钮

一.pragma mark - UIScrollView滚动视图

思考套路:
1.找适合的代理方法
2.从方法中 操作要改变的
3.判断时的条件:偏移量,活动范围,当前的scrollView

// 1.初始化
UIScrollView *scrollView = [[UIScrollView alloc]initWithFrame:[UIScreen mainScreen].bounds];
// 2.设置属性
scrollView.background = [UIColor yellowColor];
// 设置显示内容的区域(是滑动的范围) 我们滑动的是scrollView,不是图片
scrollView.contentSize = CGSizeMake(KScreenWidth * 3,KScreenHeight * 2);
// 设置偏移量 (指的是把scrollView的原点从(0,0)偏移到(x,y));
scrollView.contentOffSet = CGPointMake(x,y);
// 关闭滚动条 (默认是显示的)
scrollView.showHorizontalScrollIndicator = NO;
scrollView.showVerticalScrollIndicator = NO;

// 设置整页滑动
scrollView.pagingEditing = YES;

// 设置回弹效果
scrollView.bounces = YES;  // 默认是YES
scrollView.alwaysBouncesHorizontal = YES;  // 开启水平方向上的回弹;
scrollView.alwaysBouncesVertical = YES;    // 开启竖直方向上的回弹;

// 设置缩放的比例
scrollView.minimumZoomScale = 0.5;   // 最小是原来的一半
scrollView.maximumZoomScale = 2;     // 最大是原来的两倍
[scrollView setZoomScale:1 animated:YES];  // 还原原来的比例,且有动画

// 设置代理,遵循的是<UIScrollViewDelegate>协议
scrollView.delegate = self;

二.pragma mark - UIScrollViewDelegate协议

1.一滑动就触发
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
 {
     NSLog(@"滑动时,一直在触发");
}
2.一缩放就触发
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
{
     NSLog(@"一缩放就触发");
     // 缩放时按中心点来缩放,这样图片的中心位置就不会发生变化
     UIImageView *imageView = scrollView.subViews[0];
     imageView.center = self.view.center;
}
3.实现缩放的方法
// 指定一个要缩放的师徒(肯定是ScrollView的子视图),一般是UIImageView
- (void)viewForZoomingInScrollView:(UIScrollView *)scrollView
 {
     // 因为该scrollView上只有一个试图
     return scrollView.subViews[0];
}
4.缩放已经结束
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:()view atScale:(CGFloat)scale
 {
      NSLog(@"缩放已经结束");
}
5.将要开始拖拽 (最初调用的方法)
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
    NSLog(@"将要开始拖拽");
}
6.已经结束拖拽
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelate
{
     NSLog(@“已经结束拖拽”);
}
7.将要开始减速
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
{
      NSLog(@"将要开始减速");
}
8.已经结束减速 (停下来)
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
 {
     NSLog(@"已经结束减速");
}
9.改变偏移量的动画结束时,触发
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
{
     NSLog(@“动画结束后触发");
}

二.pragma mark - UIPageControl 分页按钮

// 初始化
UIPageControl *pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(100,100,200,50)];
// 设置属性
// 设置一共多少页
pageControl.numberOfPage = 5;
// 设置当前显示第几页
ageControl.currentPage = 1;
// 设置 未选中的 和 当前选中的点的填充颜色
pageControl.pageIndicatorTintColor = [UIColor greenColor];
pageControl.CurrentPageIndicatorTintColor = [UIColor redColor];
// 给pageControl添加方法
[pageControl addTarget:self action:@selector(change:)forControlEvents:
(UIControlEventValueChanged)];
// 显示
self.view addSubView:pageControl;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值