ios17~UICollectionViewCell中用UIScrollView縮放圖片

2018.06.01

UICollectionViewCell中添加UIScrollView,使用UIImageView來縮放圖片

  • 設(shè)置scrollView,maximumZoomScale,minimumZoomScale,delegate
self.scrollView.userInteractionEnabled = YES;
self.scrollView.scrollEnabled = YES;
self.scrollView.bounces = YES;
self.scrollView.maximumZoomScale = 3.0f;
self.scrollView.minimumZoomScale = 1.0f;
self.scrollView.delegate = self;
self.scrollView.clipsToBounds = YES;
  • cell在willDisplay的時(shí)候,要恢復(fù)縮放狀態(tài)
[self.scrollView setZoomScale:self.scrollView.minimumZoomScale animated:NO];
  • 雙擊圖片放大
- (void)onDoubleTappedGestureRecognizer:(UITapGestureRecognizer *)recognizer {
    

    if (self.scrollView.zoomScale > self.scrollView.minimumZoomScale) {
        // 已經(jīng)放大 現(xiàn)在縮小
        [self.scrollView setZoomScale:self.scrollView.minimumZoomScale animated:YES];
    }
    else {
        [self.scrollView setZoomScale:self.scrollView.maximumZoomScale animated:YES];
    }

}
  • UIScrollViewDelegate,選中要縮放的UIImageView
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    return self.imageView;
}
  • UISCrollViewDelegate,縮放時(shí)保持圖片居中
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
{
    CGFloat scrollW = CGRectGetWidth(scrollView.frame);
    CGFloat scrollH = CGRectGetHeight(scrollView.frame);
    
    CGSize contentSize = scrollView.contentSize;
    CGFloat offsetX = scrollW > contentSize.width ? (scrollW - contentSize.width) * 0.5 : 0;
    CGFloat offsetY = scrollH > contentSize.height ? (scrollH - contentSize.height) * 0.5 : 0;
    
    CGFloat centerX = contentSize.width * 0.5 + offsetX;
    CGFloat centerY = contentSize.height * 0.5 + offsetY;
    
    self.imageView.center = CGPointMake(centerX, centerY);
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • UIView+SGFrame.h #import @interface UIView (SGFrame) @pro...
    超越時(shí)空的思念_8a22閱讀 1,962評論 1 1
  • 在iOS中,滾動(dòng)視圖UIScrollView用于查看大于屏幕的內(nèi)容。Scroll View有兩個(gè)主要目的: 讓用戶...
    pro648閱讀 39,010評論 4 37
  • 基礎(chǔ)篇: 面向?qū)ο蟮奶卣鳎豪^承+多態(tài),封裝。 繼承的特性: 子類擁有父類非private的屬性,方法。 子類可以擁...
    太林閱讀 173評論 0 0
  • 人生,就像石頭記里的歷劫一樣,命中注定會(huì)經(jīng)歷數(shù)不盡的磨難。生命的狀態(tài)是運(yùn)動(dòng)的。人每天不停的忙碌、勞作、體驗(yàn)著不...
    風(fēng)竹禪玉閱讀 847評論 0 2

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