本文共 1724 字,大约阅读时间需要 5 分钟。
当需要显示的内容超过了屏幕尺寸时,滚动视图控件能够帮组在当前的视图中显示更多地内容。
1:在对象库中找到滚动视图控件,即UIScrollView,将其拖拽到视图中,滚动视图默认填充整个视图,可以调整滚动视图到合适的尺寸。如果启用了Auto Layout,将无法通过缩放的方法调整滚动视图的大小,所以可以关闭Auto Layout再进行调整。
2:在拖拽一个图像视图控件到滚动视图控件中,调整位置覆盖整个滚动视图。关闭图形视图控件的Auto Layout.
3:随便选择一个图片放到Supporting Files文件夹下方。之后选中图像视图控件,打开其属性检查器,设置图像视图控件的image属性为刚添加的图像文件,其效果如下
而原来的图片为
相对比,可以看出在模拟器中的图片在高度和宽度上都有压缩的迹象,这是由于在图像视图控件的Mode属性默认设置为Scale ToFill,图像控件对图像自动进行了尺寸压缩的处理。
4.修改Mode的属性为Top Right ,在故事版中只能看到图片的右上角的信息,运行时看到的效果一样,且无法拖拽屏幕以显示图片的其他区域。
5.要想看到其他的区域,我们可以设置滚动视图控件的contentSize属性。
6.为滚动视图控件和图像视图控件创建属性连接口。
所以在ViewController.h中的代码为:
@interface ViewController :UIViewController
@property (weak, nonatomic) IBOutletUIScrollView *scrollview;
@property (weak, nonatomic) IBOutletUIImageView *imageview;
7:在ViewController.m 中的代码为:
- (void)viewDidLoad {
[superviewDidLoad];
self.scrollview.contentSize =self.imageview.image.size;
self.scrollview.contentSize=self.imageview.image.size 这句代码就是设置滚动视图的contentSize 为图片的大小,这样将告诉滚动视图在内部留出足够的空间来显示图片,滚动视图将自动检测屏幕的大小,当滚动视图可视空间不够时会自动在两边添加滚动条,允许用户拖动图片来滚动视图查看图片的其他部分。
在滚动视图中还可以使图片放大和缩小
1:选中滚动视图,打开其属性检查器,找到Zoom属性,设置Min和Max,最小缩放假设设置为0.1,最大放大的倍数为6.
2:在ViewController.m 中添加对滚动视图的代理协议UIScrollViewDelegate类,该协议提供了一系列的方法支持用户在滚动视图中的操作。其代码为
#import "ViewController.h"
@interfaceViewController () <UIScrollViewDelegate>
@end
3:而请求视图进行缩放的方法为viewForZoomingInScrollView,其代码如下
-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
returnself.imageview;
}
4:还要在viewDidLoad方法里设置滚动视图的代理类为当前的视图控制器本身,即
- (void)viewDidLoad {
[superviewDidLoad];
self.scrollview.contentSize =self.imageview.image.size;
self.scrollview.delegate =self;
}
5:还需要通过一定的配置来指定滚动视图控件的代理。在视图布局兰中按住control键后,从滚动视图控件拖拽出蓝色引导线到视图控制器,在弹出的提示窗口中选择delegate即可。
6:运行应用,按住option键可以通过两个手指来模拟缩放的操作。