zoukankan      html  css  js  c++  java
  • (七)大图展示Demo引出的UIScrollView的使用

    UIScrollView是一个能够滚动的视图控件,可以通过滚动查看所有内容。

    用途:

    1.一张大图屏幕放不下,可以用各个方向的手势来看大图的各个部分。

    2.手机的设置页面有很多的选项,需要上下滚动来查看。


    使用步骤:

    1.将需要展示的内容添加到UIScrollView中

    2.设置UIScrollView的contentSize属性,表示所有内容的尺寸(滚动的范围)。

    只能通过代码来设置。

    先连线,然后设置一次即可,设置代码为:例如展示一张大图:

    self.scrollView.contentSize = CGSizeMake(892, 632);

    如果不能拖动,先看有没有设置contentSize,有可能是没有去掉autolayout,也可能是scrollEnabled = NO,也可能没有检测到触摸事件(User InterationEnabled = NO)。

    更好的写法是获取图片尺寸赋给滚动视图:

    self.scrollView.contentSize = self.imageView.frame.size;
    或者

    self.scrollView.contentSize = self.imageView.image.size;


    其他常见属性:

    1.contentOffset,用来表示UIScrollView滚到的位置。

    以内容左上角为(0,0),x为当前位置与左边界的最近距离,y为当前位置与上边界的最近距离

    应用:点击滚动按钮,自动进行滚动。

    这个值是CGPoint类型,默认是GGPointZero。

    需要注意,UIScrollView自带动画,不需要用block动画。

    使用这个属性设置的滚动是不会自动弹回的,检测到touch才会弹回。

    注意结构体改变要先取出来修改再赋回去。

        CGPoint offset = self.scrollView.contentOffset;
        offset.x += 10;
        offset.y += 10;
        [self.scrollView setContentOffset:offset animated:YES];

    2.contentInset

    是UIEdgeInsets类型的结构体,有top、left、bottom、right属性,表示四个方向可以额外滚动的区域(不会自动弹回)

    self.scrollView.contentInset = UIEdgeInsetsMake(100, 20, 40, 80);


    Tip:scrollView的frame.size表示的是scrollView的可视范围,contentSize表示的是总体内容的范围。
  • 相关阅读:
    如何基于 String 实现同步锁?
    Web前端开发必不可少的9个开源框架
    Java知识,面试总会问到虚拟机,虚拟机类加载机制你懂吗?
    带你了解Java的序列化与反序列化
    想自己写框架?不了解Java注解机制可不行
    深度解密:Java与线程的关系
    手把手教你分析Mysql死锁问题
    windows server 2012 安装 DockerToolbox
    .NET CORE MVC  返回 JSON 数据
    .net core ajax提交Controller接收不到的问题处理方法
  • 原文地址:https://www.cnblogs.com/aiwz/p/6154246.html
Copyright © 2011-2022 走看看