你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> IOS學習筆記41--圖片的縮放(二)

IOS學習筆記41--圖片的縮放(二)

編輯:IOS開發綜合
今天的重點:利用ScrollView進行圖片的縮放 直接先說原理吧--原理:利用了scrollview的回調函數(如下)以及scrollview自己內部的一些縮放規則(其實我也還沒弄清楚具體scrollview干了什麼事),只是知道了它可以怎麼做-_-# - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {     returnself.zoomImageView; } 其實今天的縮放部分我還加上了常見的  雙擊圖片的縮小與放大,先上代碼: - (id)initWithFrame:(CGRect)frame {     self = [super initWithFrame:frame];     if (self) {        //自身屬性的一些設置          NSLog(@"%@",NSStringFromCGRect(frame));         self.delegate =self;         self.showsVerticalScrollIndicator =NO;         self.showsHorizontalScrollIndicator =NO;         self.maximumZoomScale =3;                  //承載當前圖片的imageview         self.zoomImageView = [[[UIImageViewalloc] init] autorelease];         self.zoomImageView.userInteractionEnabled =YES;         self.zoomImageView.frame =CGRectMake(0.0f, 0.0f, frame.size.width  , frame.size.height);         self.zoomImageView.image = [UIImageimageNamed:@"lichengwu.jpeg"];         [self addSubview:self.zoomImageView];                  // Add gesture,double tap zoom imageView.         UITapGestureRecognizer *doubleTapGesture = [[UITapGestureRecognizeralloc] initWithTarget:self                                                                                           action:@selector(handleDoubleTap:)];         [doubleTapGesture setNumberOfTapsRequired:2];         [ self.zoomImageViewaddGestureRecognizer:doubleTapGesture];         [doubleTapGesture release];                  //  initialize tapclicks         tapClicks = NO;     }     return self; } 接著上代碼: #pragma mark - Zoom methods   - (void)handleDoubleTap:(UIGestureRecognizer *)gesture {       float newScale;     if (!tapClicks) {         newScale = self.zoomScale *2.0;     }     else{         newScale = self.zoomScale *0.0;     }     CGRect zoomRect = [selfzoomRectForScale:newScale withCenter:[gesturelocationInView:gesture.view]];     [self zoomToRect:zoomRectanimated:YES];     tapClicks = !tapClicks; } 這一部分也是相當的一目了然,就是處理雙擊事件函數,是縮小還是放大,正正的處理圖片的函數如下: #pragma mark - CommonMethods - (CGRect)zoomRectForScale:(float)scale withCenter:(CGPoint)center {     CGRect zoomRect;     zoomRect.size.height =self.frame.size.height / scale;     zoomRect.size.width  =self.frame.size.width  / scale;     zoomRect.origin.x = center.x - (zoomRect.size.width  /2.0);     zoomRect.origin.y = center.y - (zoomRect.size.height /2.0);     return zoomRect; } 看見原理了沒,其實就是獲得當前點擊處的中心X與原來圖片尺寸的差值,然後傳遞給Scrollview進行縮放,至於scrollview具體干了什麼事情,這就要讓喜歡刨根問底的童鞋用一些力氣了,然後@給我哦。  
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved