ios之UIScrollView

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

相關文章
相關標籤/搜索