博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Swift - 滚动视图(UIScrollView)的用法
阅读量:4648 次
发布时间:2019-06-09

本文共 1700 字,大约阅读时间需要 5 分钟。

1,当图片尺寸超过屏幕时,使用UIScrollView可以实现滚动条视图,即手指触摸滚动屏幕方便浏览整个页面。

1
2
3
4
5
6
var
scrollView=
UIScrollView
()
scrollView.frame=
self
.view.bounds
var
imageView=
UIImageView
(image:
UIImage
(named:
"bigpic"
))
scrollView.contentSize=imageView.bounds.size;
scrollView.addSubview(imageView);
self
.view.addSubview(scrollView)

2,获取滚动视图移动的x,y坐标

通过scrollView.contentOffset.x与scrollView.contentOffset.y我们可以取到移动的偏移位置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import
UIKit
 
class
ViewController
:
UIViewController
,
UIScrollViewDelegate
{
     
    
var
scrollView:
UIScrollView
!
     
    
override
func
viewDidLoad() {
        
super
.viewDidLoad()
         
        
scrollView=
UIScrollView
()
        
//设置代理
        
scrollView.delegate =
self
        
scrollView.frame=
self
.view.bounds
        
var
imageView=
UIImageView
(image:
UIImage
(named:
"ii"
))
        
scrollView.contentSize=imageView.bounds.size;
        
scrollView.addSubview(imageView);
        
self
.view.addSubview(scrollView)
    
}
     
    
//视图滚动中一直触发
    
func
scrollViewDidScroll(scrollView:
UIScrollView
) {
        
println
(
"x:\(scrollView.contentOffset.x) y:\(scrollView.contentOffset.y)"
)
    
}
    
    
override
func
didReceiveMemoryWarning() {
        
super
.didReceiveMemoryWarning()
    
}
}

3,手势放大缩小
要实现放大缩小功能,需要指定UIScrollView的允许缩放最大比例和最小比例(默认都是是1.0)。
同时delegate属性指定一个委托类,委托类要继承UIScrollViewDelegate协议,并在委托类中实现viewForZoomingInScrollView方法。
(注:在模拟器中测试,需要按住option键再拖动内容)

1
2
3
4
5
6
7
8
9
10
11
12
scrollView.minimumZoomScale=0.1
//最小比例
scrollView.maximumZoomScale=3
//最大比例
scrollView.delegate=
self
     
func
viewForZoomingInScrollView( scrollView:
UIScrollView
!) ->
UIView
!{
     
for
subview :
AnyObject
in
scrollView.subviews {
      
if
subview.isKindOfClass(
UIImageView
) {
         
return
subview
as
UIView
     
}
   
}
    
return
nil
}

转载于:https://www.cnblogs.com/Free-Thinker/p/4838176.html

你可能感兴趣的文章
Sql Server数据库备份和恢复:原理篇
查看>>
fafu oj 1266 数数
查看>>
日期和时间模块
查看>>
开发系列:03、Spark Streaming Custom Receivers(译)
查看>>
fixed与sticky的区别
查看>>
keil C51 例子
查看>>
修改hosts文件在本地使域名解析到指定IP
查看>>
Gym 101147J Whistle's New Car(dfs)
查看>>
poj 3669 Meteor Shower
查看>>
MVC后台数据赋值给前端JS对象
查看>>
win7、offcie 2010是否激活查看方法
查看>>
C#获取本执行程序所在的当前路径
查看>>
6种字符串数组的java排序 (String array sort)
查看>>
基于EasyNetQ的RabbitMQ封装类
查看>>
ThreadLocal 在web环境下使用的边界问题
查看>>
github ssl验证跳过
查看>>
Linux下使用wget下载FTP服务器文件
查看>>
Java基础 【Arrays 类的使用】
查看>>
MPI 环境搭建问题-运行程序闪退
查看>>
(数据科学学习手札05)Python与R数据读入存出方式的总结与比较
查看>>