IOS----UIScrollerView的使用

刚刚遛狗回来,前段时间创建的这篇博客一直没有填充内容,今天把scrollerview正好整理一下。

1.scrollerview的主要作用:当界面显示不开要显示的内容,scrollerview提供了滑动的效果,使用户能够通过滑动查看所有的内容

2.scrollerview的常用属性:

(1)CGSizecontentSize;这个属性⽤用来表⽰示UIScrollView内容的尺寸,滚动范围

(2)CGPointcontentOffset; 这个属性⽤来表示UIScrollView滚动的位置,表示的是一个点:CGPoint,也就是scrollerview的“显示界面”的原点位置在“内容界面”的位置。比如scrollerview的frame的是 CGRectMake(0,0,320,320) ,而scrollerview.contantSize = CGSizeMake(320,640); ,那么当内容滑动到底部时候,CGPointcontentOffset就是(0,320)。

(3)UIEdgeInsetscontentInset; 这个属性能够在UIScrollView的4周增加额外的滚动区域,(0,0,0,0)表示 上 左 下 右,即逆时针

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

 (5)@property(nonatomic,getter=isScrollEnabled)BOOLscrollEnabled; 设置UIScrollView是否能滚动 

 (6)@property(nonatomic) BOOL showsHorizontalScrollIndicator; 是否显⽰示⽔水平滚动条 

 (7)@property(nonatomic) BOOL showsVerticalScrollIndicator; 是否显⽰示垂直滚动条 

3.注意点

• 如果UIScrollView⽆无法滚动,可能是以下原因: 

(1)没有设置contentSize

(2) scrollEnabled = NO

(3) 没有接收到触摸事件:userInteractionEnabled = NO

(4)没有取消autolayout功能(要想scrollView滚动,必须取消autolayout) 

 

4.代码

(1)创建scrollerview

- (void)viewDidLoad
 {
     [super viewDidLoad];

     // 1.创建UIScrollView
     UIScrollView *scrollView = [[UIScrollView alloc] init];
     scrollView.frame = CGRectMake(0, 0, 250, 250); // frame中的size指UIScrollView的可视范围
     scrollView.backgroundColor = [UIColor grayColor];
     [self.view addSubview:scrollView];

     // 2.创建UIImageView(图片)
     UIImageView *imageView = [[UIImageView alloc] init];
     imageView.image = [UIImage imageNamed:@"big.jpg"];
     CGFloat imgW = imageView.image.size.width; // 图片的宽度
     CGFloat imgH = imageView.image.size.height; // 图片的高度
     imageView.frame = CGRectMake(0, 0, imgW, imgH);
     [scrollView addSubview:imageView];

     // 3.设置scrollView的属性

     // 设置UIScrollView的滚动范围(内容大小)
     scrollView.contentSize = imageView.image.size;

     // 隐藏水平滚动条
     scrollView.showsHorizontalScrollIndicator = NO;
     scrollView.showsVerticalScrollIndicator = NO;

     // 用来记录scrollview滚动的位置
 //    scrollView.contentOffset = ;

     // 去掉弹簧效果
 //    scrollView.bounces = NO;

     // 增加额外的滚动区域(逆时针,上、左、下、右)
     // top  left  bottom  right
     scrollView.contentInset = UIEdgeInsetsMake(20, 20, 20, 20);

     _scrollView = scrollView;
     }

 - (IBAction)down:(UIButton *)sender {
     [UIView animateWithDuration:1.0 animations:^{
             //三个步骤
             CGPoint offset = _scrollView.contentOffset;
             offset.y += 150;
             _scrollView.contentOffset = offset;
         
             //_scrollView.contentOffset = CGPointMake(0, 0);
         }];
     }
 @end

(2)缩放功能

#import "YYViewController.h"

 @interface YYViewController () <UIScrollViewDelegate>
 {
        UIScrollView *_scrollview;
        UIImageView *_imageview;
}
 @end

@implementation YYViewController

- (void)viewDidLoad
 {
     [super viewDidLoad];

     //1添加 UIScrollView
     //设置 UIScrollView的位置与屏幕大小相同
     _scrollview=[[UIScrollView alloc]initWithFrame:self.view.bounds];
     [self.view addSubview:_scrollview];

     //2添加图片
     //有两种方式
     //(1)一般方式
 //    UIImageView  *imageview=[[UIImageView alloc]init];
 //    UIImage *image=[UIImage imageNamed:@"minion"];
 //    imageview.image=image;
 //    imageview.frame=CGRectMake(0, 0, image.size.width, image.size.height);

     //(2)使用构造方法
     UIImage *image=[UIImage imageNamed:@"minion"];
     _imageview=[[UIImageView alloc]initWithImage:image];
     //调用initWithImage:方法,它创建出来的imageview的宽高和图片的宽高一样
     [_scrollview addSubview:_imageview];

     //设置UIScrollView的滚动范围和图片的真实尺寸一致
     _scrollview.contentSize=image.size;


     //设置实现缩放
     //设置代理scrollview的代理对象
     _scrollview.delegate=self;
     //设置最大伸缩比例
     _scrollview.maximumZoomScale=2.0;
     //设置最小伸缩比例
     _scrollview.minimumZoomScale=0.5;
}

 //告诉scrollview要缩放的是哪个子控件
-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
         return _imageview;
}

 @end

 

 本文参考文顶顶的博客:http://www.cnblogs.com/wendingding/p/3754268.html

 

 

转载于:https://www.cnblogs.com/huadeng/p/6928958.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值