iOS高級控件之ScrollView分析(一)

今天學習了scrollView,其實上也挺簡單清晰的,下面我帶大家一起來使用這個scrollview這個控件的相關屬性操作。

首先新建一個single項目,然後再storyboard中加入scrollview,並在ViewController中將屬性進行連接(記得是IBOutlet)
這裏寫圖片描述

1.創建一個imageView
1.1 創建UIImage

UIImage *image = [UIImage imageNamed:@"001.jpeg"];
UIImageView *_imageview = [[UIImageView alloc] initWithImage:image];
[_scrollView addSubview:_imageview];

2.設置圖片視圖滾動屬性

[_scrollView setContentSize:image.size];
//拖動後距離邊框的距離
UIEdgeInsets edge = UIEdgeInsetsMake(10.0,10.0, 10.0, 10.0);
[_scrollView setContentInset:edge];
//設置背景的顏色
[_scrollView setBackgroundColor:[UIColor grayColor]];

3.其他屬性(彈性、滾動、水平滾動條、豎直滾動條)

//3.1 是否有彈性
[_scrollView setBounces:YES];//默認yes下同
//3.2 是否能滾動
[_scrollView setScrollEnabled:YES];//默認yes下同
//3.3是否有水平滾動條
[_scrollView setShowsHorizontalScrollIndicator:YES];
//3.4是否有豎直滾動條
[_scrollView setShowsVerticalScrollIndicator:YES];

4.縮放效果,如果親們需要實現縮放,那麼就需要一個代理協議,在ViewController.h中添加一個協議

@interface ViewController : UIViewController <UIScrollViewDelegate>

同時添加縮放滾動的代理方法

-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{ 
// 縮放時要換個圖象的話
NSString *imageFile = [NSString stringWithFormat:@"03d.jpeg",arc4random_uniform(10)+1];
UIImage *image = [UIImage imageNamed:imageFile];
[_imageview setImage:image];

return _imageview;
}

這是在viewDidload中可以加入

[_scrollView setMinimumZoomScale:0.2];
[_scrollView setMaximumZoomScale:2.0];
//設置滾動視圖代理
[_scrollView setDelegate:self];

5.通過按鈕button實現移動圖片

5.1加入四個button,設置tag分別爲0,1,2,3,方便使用管理
這裏寫圖片描述

同時將每一個按鈕都分別於實現方法進行連接。

5.2 分別設置每一個按鈕移動的距離
這裏寫圖片描述

5.3但是爲了防止出現無限的移動,甚至是移除了視線,那就不好咯~所以我們可以設置一個判斷,用來規範最多能夠移動多少。
這裏寫圖片描述

5.4當然這樣移動還是有點太生硬,我們不妨加一些動畫效果

  //動畫效果
  [UIView animateWithDuration:0.3f animations:^{
  //修改圖像偏移位置
 [_scrollView setContentOffset:ofset];
    }];

6.ScrollView總結1:

  • CGSize contentSize:設置UIScrollView的滾動範圍 CGPoint

  • contentOffset:UIScrollView當前滾動的位置

  • UIEdgeInsets contentInset:增加滾動視圖四周的增加滾動範圍

    這裏寫圖片描述

注意區分contentSize和contentOffset以及contentInset的座標系位置,如上圖我相信可以很好的幫助大家區分。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章