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表示的是总体内容的范围。
  • 相关阅读:
    scp 指定端口(转)
    openshift 入门 部署 openshift-origin-server-v3.7.0
    kubernetes 网络模型
    故障排除--kubernetes 运维操作步骤 -- kubedns -- busybox -- nslookup 问题
    Service 服务发现的两种方式-通过案例来理解+服务外部访问类型+selector-label
    nmap 扫描端口 + iftop 实时监控流量
    Intellij IDEA 2016.3.4 注册激活--转
    laravel服务提供者类说明
    使用PHP实现命令模式(转)
    异步回收fork出的子进程(僵尸进程)
  • 原文地址:https://www.cnblogs.com/aiwz/p/6154246.html
Copyright © 2011-2022 走看看