2

Я хочу отобразить некоторые изображения, используя коллекцию. Что я использую scrollview внутри ячейки и изображения в режиме просмотра прокрутки. изображение масштабируется и уменьшает масштаб. когда ячейка повторно используется, просмотр прокрутки новой ячейки и размер изображения аналогичны старым, которые были увеличены. хотите, чтобы размер изображения прокрутки ячейки повторно использовался по умолчанию. как решить это.отображение изображений с использованием uicollectionview с возможностью масштабирования

ответ

0

@hello вы должны установить жест в ImageView & usung ниже методов, вы можете легко установить Увеличить & Уменьшить Использование Жест

в ViewDID ..

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 

scrollViewMain.maximumZoomScale = 5.0; 
    scrollViewMain.minimumZoomScale = 1.0; 
    scrollViewMain.clipsToBounds = NO; 
    scrollViewMain.delegate = self; 
UITapGestureRecognizer *tapTwice = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapTwice:)]; 
    // set number of taps required 
    tapTwice.numberOfTapsRequired = 2; 

    // now add the gesture recogniser to a view 
    // this will be the view that recognises the gesture 
    [scrollViewMain addGestureRecognizer:tapTwice]; 
} 
//------For Zoom IN ScrollView------------------------------------------------------- 
-(UIView *)viewForZoomingInScrollView:(UIScrollView *)inScroll { 
    //self.iPickedPicture.center = ivPicture.center; 
    return _imgView; 
} 


- (void)tapOnce:(UIGestureRecognizer *)gesture 
    { 
     //on a single tap, call zoomToRect in UIScrollView 
     if ([scrollViewMain zoomScale] > 1.0) 
     { 
     float newScale = 1.0; 
     CGRect zoomRect = [self zoomToCenter:newScale withCenter:[gesture locationInView:scrollViewMain]]; 
     [scrollViewMain zoomToRect:zoomRect animated:YES]; 
     } 
     else 
     { 
      float newScale = 3.5; 
      CGRect zoomRect = [self zoomToCenter:newScale withCenter:[gesture locationInView:scrollViewMain]]; 
      [scrollViewMain zoomToRect:zoomRect animated:YES]; 

     } 
    } 
    - (void)tapTwice:(UIGestureRecognizer *)gesture 
    { 
     //on a double tap, call zoomToRect in UIScrollView 
     if ([scrollViewMain zoomScale] == 1.0) { 

     float newScale = [scrollViewMain zoomScale] * 3.5; 
     CGRect zoomRect = [self zoomToCenter:newScale withCenter:[gesture locationInView:scrollViewMain]]; 
     [scrollViewMain zoomToRect:zoomRect animated:YES]; 
     }else 
     { 
      float newScale = 1.0; 
      CGRect zoomRect = [self zoomToCenter:newScale withCenter:[gesture locationInView:scrollViewMain]]; 
      [scrollViewMain zoomToRect:zoomRect animated:YES]; 
     } 

    } 

    - (CGRect)zoomToCenter:(float)scale withCenter:(CGPoint)center { 

     CGRect zoomRect; 
     zoomRect.size.height = scrollViewMain.frame.size.height/scale; 
     zoomRect.size.width = scrollViewMain.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; 


    } 
Смежные вопросы