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

本文共 1644 字,大约阅读时间需要 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
}

转载地址:http://asyll.baihongyu.com/

你可能感兴趣的文章
没有公网IP怎样访问异地视频监控
查看>>
企业网站如何备案
查看>>
分析日志的小脚本
查看>>
SUSE 11中安装gcc开发环境
查看>>
微信小程序HTTPS证书部署案例
查看>>
12月19日全球域名商保有量及市场份额排行榜16强
查看>>
Flask的Jinja2模板引擎 - 块与宏
查看>>
java报表插件绘制多项甘特图
查看>>
Debian安装/设置
查看>>
liberator decision graph
查看>>
Oracle VM 3.2.2 安装配置实战
查看>>
拥有2000家门店,他如何晋升为服装界的新宠?
查看>>
Linux服务器监控脚本
查看>>
翻译过的一些博客文章
查看>>
H5拍照应用开发经历的那些坑儿
查看>>
Git - 批量增删修改操作
查看>>
我的友情链接
查看>>
Linux -- 更改系统时区及时间
查看>>
浅谈reload,restart
查看>>
CSS彻底研究视频教程(全23讲)
查看>>