UIScrollView
很多ios的应用软件都会滚动显示单个或多个图片,UIScrollView控件主要就是用来
满足这种需求的,展示一张超出屏幕的图片
UIScorllView控件有三个与显示相关的重要属性:contentSize、contentInset和contentOffSet。
UIScrollView *scrollView=[[UIScrollView alloc] init];
UIImageView *imageView=[[UIImageView alloc] initWithImage: [UIImage imageNamed:@"1.jpg"]];
1. 属性contentSize表示UIScrollView中内容视图的大小,返回的是一个CGSize结构体
类型,该结构体包含width和height两个成员
scrollView.contentSize = imageView.frame.size;
此时运行程序,可见只能显示图片的一部分,然后选中图片可以任意移动图片,实现
滚动屏幕的效果。
2. 属性contentInset用于在UIScrollView控件中的内容视图周围添加边距,返回的是一
个UIEdgeInsets结构体类型,该结构体包含top、left、bottom和right四个成员,表示
四个边距,这里设置上边距和左边距30个像素,
scrollView.contentInset = UIEdgeInsetsMake(30, 30, 0,0);
运行程序,滚动图片可见内容视图离上边和左边都有一个空白的边距
3 .属性contentOffSet是内容视图坐标原点和UIScrollView坐标原点的偏移量,可以改
变显示内容的显示区域,该属性返回一个CGPoint结构体类型
其他属性
设置反弹
scrollView.bounces = NO;
设置滚动条的样式
[scrollView setIndicatorStyle:UIScrollViewIndicatorStyleBlack];
设置是否显示平行滚动条
scrollView.showsHorizontalScrollIndicator = NO;
设置是否显示垂直滚动条
lscrollView.showsVerticalScrollIndicator = NO;
三张图片的滑动
- (void)viewDidLoad
{
[super viewDidLoad];
UIScrollView *scrollView=[[UIScrollView alloc] init];
CGRect frame=self.view.frame;
//设置大小和位置
scrollView.frame=frame;
//加载图片
UIImage *image1=[UIImage imageNamed:@"1.jpg"];
UIImage *image2=[UIImage imageNamed:@"2.jpg"];
UIImage *image3=[UIImage imageNamed:@"3.jpg"];
self.array=@[image1,image2,image3]; CGSizesize=CGSizeMake(self.array.count*self.view.frame.size.width,self.view.frame.size.height);
//显示内容大小
scrollView.contentSize=size;
for(int i=0;i<self.array.count;i++)
{
UIImageView *imageView=[[UIImageView alloc] initWithImage:self.array[i]];
imageView.contentMode=UIViewContentModeScaleAspectFit;
//图片显示的区域
imageView.frame=CGRectMake(i*self.view.frame.size.width,0,self.view.frame.size.width, self.view.frame.size.height);
[scrollView addSubview:imageView];
}
scrollView.pagingEnabled=YES;
[self.view addSubview:scrollView];
}
实现两指缩放功能
1.要遵守<UIScrollViewDelegate>协议
2.方法里面给self.delegate赋值 self.scrollView.delegate = self;
3.实现方法 //那张图片需要缩放
- (UIView *)viewForZoomingInScrollView:(UIScrollView*)scrollView
{
Return self.imageView;
}
在viewDidLoad里设置可以缩放的比例
scrollView.minimumZoomScale = 0.1;
scrollView.maximumZoomScale = 1.0;
完整代码:
#import "TRViewController.h"
@interface TRViewController () <UIScrollViewDelegate>
@property (nonatomic, strong)UIImageView *imageView;
@property (nonatomic, strong)UIScrollView *scrollView;
@end
- (void)viewDidLoad
{
[super viewDidLoad];
UIScrollView *scrollView = [[UIScrollViewalloc]init];
self.scrollView = scrollView;
//添加显示内容
UIImageView *imageView=[[UIImageViewalloc]initWithImage:[UIImage imageNamed:@"qwer.jpg"]];
self.imageView = imageView;
[self.scrollView addSubview:imageView];
self.scrollView.frame = self.view.frame;
//将self.scrollView添加到父视图
[self.viewaddSubview:self.scrollView];
//设置scrollView显示内容的大小
self.scrollView.contentSize = imageView.frame.size;
self.scrollView.contentInset = UIEdgeInsetsMake(20, 20,0,0);
//scrollView的其他属性
//设置反弹
self.scrollView.bounces = NO;
//设置滚动条的样式.
[self.scrollView setIndicatorStyle:UIScrollViewIndicatorStyleBlack];
//设置是否显示平行滚动条
self.scrollView.showsHorizontalScrollIndicator = NO;
//设置是否显示垂直滚动条
self.scrollView.showsVerticalScrollIndicator = NO;
//给scrollView的委托赋值
self.scrollView.delegate = self;
//设置可以缩放的比例
self.scrollView.minimumZoomScale =0.1
self.scrollView.maximumZoomScale = 1.0;
}
//实现方法 那张图片需要缩放
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
Return self.imageView;
}
@end