UIScrollView(縮放圖片)

概述

項目中有個功能用到了圖片的縮放。之前寫的方法是在imageView上面add了一個捏合手勢,然后根據(jù)pinch手勢的scale設(shè)置imageViewframe,效果不是很好,也沒有回彈效果。今天準備解決這個問題,于是各種查資料,找到了這個方法。

原理

在使用UIScrollView自帶的捏合手勢時,會回調(diào)
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView這個代理方法,這個代理方法返回的view就是需要縮放的view。

代碼

創(chuàng)建scrollView對象

UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 568)];
scrollView.delegate = self;
//設(shè)置最大放大倍數(shù),默認是1.0
scrollView.maximumZoomScale = 3.0;
//設(shè)置最小縮小倍數(shù),默認是1.0
scrollView.minimumZoomScale = 0.5;
//設(shè)置默認縮放倍數(shù),默認是1.0
scrollView.zoomScale = 1.0;
//是否打開縮放回彈效果,默認是YES
scrollView.bouncesZoom = YES;
[self.view addSubview:scrollView];

聲明需要縮放的imageView對象,全局變量

@property (nonatomic, strong) UIImageView *imageView;

實例化對象

self.imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]];
self.imageView.frame = scrollView.bounds;
[scrollView addSubview:self.imageView];

scrollView的代理方法
返回需要縮放的子視圖
#pragma mark - UIScrollViewDelegate
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
//返回需要縮放的子視圖
return self.imageView;
}
縮放前調(diào)用
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view
{
//縮放前調(diào)用
}
正在縮放時調(diào)用
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
{
//正在縮放時調(diào)用
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容