tamaño sacar quito quitar pantalla iconos cómo como cambiar aumentar iphone ios4 iphone-sdk-3.0 ios-simulator cocos2d-iphone

sacar - ¿Cómo arreglar el tamaño de la imagen de acercar/alejar en el paisaje de iphone?



zoom iphone 4 (1)

pls me proporcionan la lógica de cómo arreglar el tamaño del pintch dentro / fuera de la imagen en la página siguiente con la imagen dada.eg .... width = 100 y height = 150 luego la imagen está pintada adentro / afuera hasta ese nivel y corrige allí si el usuario está haciendo un zoom más grande que este tamaño, entonces también la imagen se fija a ese ancho y alto.

#import "PinchLibView.h" #import <QuartzCore/QuartzCore.h> @implementation PinchLibView @synthesize pinchImage; @synthesize pinchScrlView; @synthesize figureImageView; @synthesize getWidth,getHeight; -(void)initPinch{ figureRect = self.frame; contentView = [[UIView alloc]initWithFrame:CGRectMake(0,0, figureRect.size.width, figureRect.size.height)]; pinchScrlView = [[CustomScrollView alloc]init]; figureImageView = [[UIImageView alloc]init]; pinchScrlView.minimumZoomScale =1.0; pinchScrlView.maximumZoomScale = 4.0; //NSLog(@"%d %d",appDelegate.width1,appDelegate.height1); //getWidth=[appDelegate.width1 intValue]; //getHeight=[appDelegate.height1 intValue]; //NSLog(@"%d %d",getWidth,getHeight); } - (void)initScrollView{ //figureImageView = [[UIImageView alloc]init]; self.userInteractionEnabled = YES; //figureImageView.image = pinchImage; figureImageView.contentMode = UIViewContentModeScaleAspectFit; pinchScrlView.frame = CGRectMake(0,0, figureRect.size.width, figureRect.size.height); [pinchScrlView setResetFrame:figureRect]; pinchScrlView.hidden = NO; pinchScrlView.zoomScale = 1.0; pinchScrlView.delegate = self; pinchScrlView.showsHorizontalScrollIndicator = NO; pinchScrlView.showsVerticalScrollIndicator = NO; figureImageView.frame = CGRectMake(0,5, figureRect.size.width,figureRect.size.height-10); [contentView addSubview:figureImageView]; [pinchScrlView addSubview:contentView]; [self addSubview:pinchScrlView]; CATransition *animation = [CATransition animation]; animation.duration = 0.3f; animation.type = kCATransitionFade; pinchScrlView.zoomScale = 1.0; [pinchScrlView.layer addAnimation: animation forKey: nil]; /*pinchScrlView.backgroundColor = [UIColor yellowColor]; contentView.backgroundColor = [UIColor yellowColor]; figureImageView.backgroundColor = [UIColor redColor];*/ /*pinchScrlView.backgroundColor = [UIColor whiteColor]; contentView.backgroundColor = [UIColor whiteColor]; figureImageView.backgroundColor = [UIColor whiteColor]; */ } - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{ return contentView; } - (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale{ /* Reset Image if scale in less than 1.0 */ if(scale <= 1.0){ UIEdgeInsets anEdgeInset = { 0, 0, 0, 0}; pinchScrlView.contentInset = anEdgeInset; pinchScrlView.scrlFlag = FALSE; pinchScrlView.zoomScale = 0.0; pinchScrlView.scrollEnabled = NO; CATransition *animation = [ CATransition animation ]; animation.duration = 0.3f; animation.type = kCATransitionFade; self.frame = figureRect; pinchScrlView.frame = figureRect; [self.layer addAnimation: animation forKey: nil ]; [figureImageView.layer addAnimation: animation forKey: nil ]; contentView.frame = figureRect; pinchScrlView.contentSize = figureRect.size; contentView.center = CGPointMake(self.frame.size.width/2, self.frame.size.height/2); pinchScrlView.center = CGPointMake(self.frame.size.width/2, self.frame.size.height/2); } /* Make image centered if scale in greater than 1.0 */ if(pinchScrlView.zoomScale > 1.0 && !pinchScrlView.scrlFlag){ pinchScrlView.frame = self.superview.frame; self.frame = self.superview.frame; pinchScrlView.clipsToBounds = NO; pinchScrlView.scrollEnabled = NO; pinchScrlView.contentSize = pinchScrlView.frame.size; pinchScrlView.scrlFlag = TRUE; CGRect innerFrame = contentView.frame;////////// CGRect scrollerBounds =pinchScrlView.bounds; //CGRect scrollerBounds =CGRectMake(50,50,appDelegate.width1,appDelegate.height1); if ( ( innerFrame.size.width < scrollerBounds.size.width ) || ( innerFrame.size.height < scrollerBounds.size.height ) ) { CGFloat tempx = contentView.center.x - ( scrollerBounds.size.width / 2 ); CGFloat tempy = contentView.center.y - ( scrollerBounds.size.height / 2 ); CGPoint myScrollViewOffset = CGPointMake(tempx, tempy); pinchScrlView.contentOffset = myScrollViewOffset; } else if ((innerFrame.size.width > scrollerBounds.size.width) || (innerFrame.size.height > scrollerBounds.size.height)){ if(innerFrame.size.width > scrollerBounds.size.width){ pinchScrlView.zoomScale = self.frame.size.width/figureRect.size.width; }else if(innerFrame.size.height > scrollerBounds.size.height){ pinchScrlView.zoomScale = self.frame.size.height/figureRect.size.height; } CGFloat tempx = contentView.center.x - (scrollerBounds.size.width / 2 ); CGFloat tempy = contentView.center.y - (scrollerBounds.size.height / 2 ); CGPoint myScrollViewOffset = CGPointMake( tempx, tempy); pinchScrlView.contentOffset = myScrollViewOffset; } UIEdgeInsets anEdgeInset = { 0, 0, 0, 0}; if(scrollerBounds.size.width > innerFrame.size.width) { anEdgeInset.left = (scrollerBounds.size.width - innerFrame.size.width) / 2; anEdgeInset.right = -anEdgeInset.left; } if(scrollerBounds.size.height > innerFrame.size.height) { anEdgeInset.top = (scrollerBounds.size.height - innerFrame.size.height) / 2; anEdgeInset.bottom = -anEdgeInset.top; } pinchScrlView.contentInset = anEdgeInset; } if(pinchScrlView.zoomScale > 1.0){ CGRect innerFrame = contentView.frame; CGRect scrollerBounds = pinchScrlView.bounds; //CGRect scrollerBounds =CGRectMake(50,50,appDelegate.width1,appDelegate.height1); if((innerFrame.size.width < scrollerBounds.size.width) || (innerFrame.size.height < scrollerBounds.size.height)){ CGFloat tempx = contentView.center.x - (scrollerBounds.size.width / 2 ); CGFloat tempy = contentView.center.y - (scrollerBounds.size.height / 2 ); CGPoint myScrollViewOffset = CGPointMake( tempx, tempy); pinchScrlView.contentOffset = myScrollViewOffset; } else if((innerFrame.size.width > scrollerBounds.size.width) || (innerFrame.size.height > scrollerBounds.size.height)){ if(innerFrame.size.width > scrollerBounds.size.width){ pinchScrlView.zoomScale = self.frame.size.width/figureRect.size.width; }else if(innerFrame.size.height > scrollerBounds.size.height){ pinchScrlView.zoomScale = self.frame.size.height/figureRect.size.height; } CGFloat tempx = contentView.center.x - (scrollerBounds.size.width / 2 ); CGFloat tempy = contentView.center.y - (scrollerBounds.size.height / 2 ); CGPoint myScrollViewOffset = CGPointMake( tempx, tempy); pinchScrlView.contentOffset = myScrollViewOffset; } UIEdgeInsets anEdgeInset = { 0, 0, 0, 0}; if (scrollerBounds.size.width > innerFrame.size.width){ anEdgeInset.left = (scrollerBounds.size.width - innerFrame.size.width) / 2; anEdgeInset.right = -anEdgeInset.left; } if (scrollerBounds.size.height > innerFrame.size.height){ anEdgeInset.top = (scrollerBounds.size.height - innerFrame.size.height) / 2; anEdgeInset.bottom = -anEdgeInset.top; } pinchScrlView.contentInset = anEdgeInset; } } @end


Prueba esto por la distancia de pellizco:

- (CGFloat) distanceBetweenTwoPoints: (CGPoint) fromPoint toPoint: (CGPoint) toPoint {float lengthX = fromPoint.x - toPoint.x; flotante lengthY = fromPoint.y - toPoint.Y; return sqrt ((lengthX * lengthX) + (lengthY * lengthY));}

- (void) touchesBegan: (NSSet *) toques con Evento: (UIEvent *) evento {// --- se encuentra una forma de detectar doble toque-- // - registra la distancia hecha por los toques de remolque-- originalDistance = [self distanceBetweenTwoPoints: touch1PT toPoint: touch2PT];}

// --- disparado cuando el usuario movió su dedo (s) en la pantalla --- - (void) touchesMoved: (NSSet *) toques con evento: (UIEvent *) evento {

//---you figure out a way to detect double tap-- //---double-touch--- //---get info of first touch--- UITouch *touch1 = [[allTouches allObjects] objectAtIndex:0]; //---get info of second touch--- UITouch *touch2 = [[allTouches allObjects] objectAtIndex:1]; //---get the points touched--- CGPoint touch1PT = [touch1 locationInView:[self view]]; CGPoint touch2PT = [touch2 locationInView:[self view]]; CGFloat currentDistance = [self distanceBetweenTwoPoints:touch1PT toPoint:touch2PT]; //---zoom in--- if (currentDistance > originalDistance) { imageView.frame = CGRectMake(imageView.frame.origin.x - 2, imageView.frame.origin.y - 2, imageView.frame.size.width + 4, imageView.frame.size.height + 4); } else { //---zoom out--- imageView.frame = CGRectMake(imageView.frame.origin.x + 2, imageView.frame.origin.y + 2, imageView.frame.size.width - 4, imageView.frame.size.height - 4); } originalDistance = currentDistance;}