Pregunta

Tengo un UIImageView que muestra una imagen más grande. Parece estar centrada, pero me gustaría para mover esa imagen dentro de ese UIImageView. Miré el moveme muestra de Apple, pero no podía entender cómo lo hacen. Parece que no tienen ni siquiera un UIImageView para eso. ¿Alguna idea?

¿Fue útil?

Solución

Respuesta original ha sido sustituida por CoreAnimation en iOS4.

Así como dice el pulgar de oro: usted puede hacerlo accediendo a CALayer del UIView. Específicamente su contentRect:

Desde el de Apple Docs : el rectángulo, en la unidad de espacio de coordenadas, que define la parte de contenido de la capa que se debe utilizar. Animatable.

Otros consejos

Lo que necesita es algo así como (por ejemplo que muestra el 30% para el 30% de la esquina superior izquierda de la imagen original):

imageView.layer.contentsRect = CGRectMake(0.0, 0.0, 0.3, 0.3);

La descripción del "contentsRect": El rectángulo, en la unidad de espacio de coordenadas, que define la parte de contenido de la capa que se deben utilizar.

¿Quieres mostrar la imagen de forma que está contenido dentro del UIImageView ? En ese caso, sólo cambia el contectMode de UIImageView a UIViewContentModeScaleToFill (si la relación de aspecto es intrascendente) o UIViewContentModeScaleAspectFit (si se quiere mantener la relación de aspecto)

En IB, esto se puede hacer mediante el establecimiento del modo en el inspector.

En el código, se puede hacer como

yourImageView.contentMode = UIViewContentModeScaleToFill;

En caso de que desee mostrar la imagen grande como es el interior de un UIImageView , el mejor y más fácil manera de hacer esto sería tener la vista de imagen dentro de un UIScrollView. Eso formas en las que podrá acercar y alejar la imagen y también se mueven a su alrededor.

Espero que ayude.

No suena como la muestra moveme hace algo parecido a lo que desea. El PlacardView en ella es del mismo tamaño que la imagen utilizada. El único cambio de tamaño hecho a él es una vista a transformar, que no afecta el área de visualización de la imagen. Como yo lo entiendo, usted tiene un cuadro grande, y quiere mostrar una pequeña ventana en ella. No hay un método de clase simple de hacer esto, pero no es una función que se puede utilizar para obtener los resultados deseados:. CGImageCreateWithImageInRect (CGImageRef, CGRect) le ayudará a cabo

Aquí hay un pequeño ejemplo de utilizarlo:

CGImageRef imageRef = CGImageCreateWithImageInRect([largeImage CGImage], cropRect);
[UIImageView setImage:[UIImage imageWithCGImage:imageRef]];
CGImageRelease(imageRef);

Muchas gracias. He encontrado una solución bastante simple que se parece a esto:

CGRect frameRect = myImage.frame;
CGPoint rectPoint = frameRect.origin;
CGFloat newXPos = rectPoint.x - 0.5f;
myImage.frame = CGRectMake(newXPos, 0.0f, myImage.frame.size.width, myImage.frame.size.height);

Yo sólo mover el marco alrededor. Sucede que partes de ese marco de salir del puerto de vista del iPhone, pero espero que esto no importa mucho. Hay una máscara sobre ella, por lo que no se ve raro. El usuario no totice cómo se hace.

Puede realizar la misma por:

UIImageView *imgVw=[[UIImageView alloc]initwithFrame:CGRectMake(x,y,height,width)];     
imgVw.image=[UIImage imageNamed:@""];
[self.view addSubView imgVw];
imgVw.contentMode = UIViewContentModeScaleToFill;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top