UIScrollView ios
不少ios的應用軟件都會滾動顯示單個或多個圖片,UIScrollView控件主要就是用來atom
知足這種需求的,展現一張超出屏幕的圖片spa
UIScorllView控件有三個與顯示相關的重要屬性:contentSize、contentInset和contentOffSet。圖片
UIScrollView *scrollView=[[UIScrollView alloc] init];it
UIImageView *imageView=[[UIImageView alloc] initWithImage: [UIImage imageNamed:@"1.jpg"]];io
1. 屬性contentSize表示UIScrollView中內容視圖的大小,返回的是一個CGSize結構體import
類型,該結構體包含width和height兩個成員軟件
scrollView.contentSize = imageView.frame.size;scroll
此時運行程序,可見只能顯示圖片的一部分,而後選中圖片能夠任意移動圖片,實現程序
滾動屏幕的效果。
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