UIScrollView 总结

一.定义

UIScrollView 是一个能够滚动的视图控件,可以用来展示大量的内容,并且可以通过滚动查看所有的内容

二.UIScrollView无法滚动的解决办法

如果 UIScrollView 无法滚动,可能是以下原因:
Ø 没有设置 contentSize
Ø scrollEnabled = NO
Ø 没有接收到触摸事件 : userInteractionEnabled = NO
Ø 没有取消 autolayout 功能(要想 scrollView 滚动,必须取消 autolayout
Ø


三.基本属性

@property(nonatomic)BOOLbounces;
设置UIScrollView是否需要弹簧效果

@property(nonatomic,getter=isScrollEnabled)BOOLscrollEnabled;
Ø设置UIScrollView是否能滚动
@property(nonatomic)BOOLshowsHorizontalScrollIndicator;
Ø是否显示水平滚动条
Ø
@property(nonatomic)BOOLshowsVerticalScrollIndicator;
Ø是否显示垂直滚动条

@property(nonatomic)CGPointcontentOffset;

Ø这个属性用来表示UIScrollView滚动的位置

@property(nonatomic)CGSizecontentSize;
Ø这个属性用来表示UIScrollView内容的尺寸,滚动范围(能滚多远)
@property(nonatomic)UIEdgeInsetscontentInset;
Ø这个属性能够在UIScrollView4周增加额外的滚动区域
eg


四.基本操作

1.滑动

设置scrollView的contentSize 属性,例如有一个scrollView控件,控件上有名为minionView的imageView

self.scrollView.contentSize = self.minionView.frame.size; // 总体内容的范围(滚动范围)

2.设置contentOffset,实现通过按钮等完成图片滚动

例如有一个行为scroll的行为(button实现),实现点击完成图片滚动

- (IBAction)scroll {
    //[UIView animateWithDuration:1.0 animations:^{
     //   self.scrollView.contentOffset = CGPointMake(100, 0);(滚动一次)
    //}];
    
   // CGPoint offset = CGPointMake(-100, -100);(滚动一次)
    CGPoint offset = self.scrollView.contentOffset;(累加滚动)
    offset.x += 10;
    offset.y += 10;
    [self.scrollView setContentOffset:offset animated:YES];
}

3.缩放

步骤:

a. 设置 UIScrollView id<UISCrollViewDelegate>delegate 代理对象
b. 设置 minimumZoomScale :缩小的最小比例
c. 设置 maximumZoomScale :放大的最大比例
d. 让代理对象实现下面的方法,返回需要缩放的视图控件

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

/**
 *  当用户使用捏合手势的时候会调用
 *
 *  @return 返回的控件就是需要进行缩放的控件
 */
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    NSLog(@"----开始缩放");
    return self.minionView;
}

/**
 *  正在缩放的时候会调用
 */
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
{
    NSLog(@"----正在缩放");
}

4.UIScrollView和delegate的通信

/**
 *  当用户开始拖拽scrollView时就会调用
 */
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
    NSLog(@"开始拖拽-----");
}

/**
 *  只要scrollView正在滚动,就会调用
 */
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    NSLog(@"----正在滚动--%@", NSStringFromCGPoint(scrollView.contentOffset));
}

//手离开滑动时
 -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
    NSLog(@"----结束滚动--");
}


五.分页

这个以后会有整理

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值