今天學習了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的座標系位置,如上圖我相信可以很好的幫助大家區分。