2009-01-25 16 views
6

Soy nuevo en la programación de iPhone y estoy tratando de entender cómo funcionan las propiedades de marco y límites. En el constructor Interfaz, creé UIView donde pongo UIImageView como un niño. Hice UIImageView más grande que la vista principal. y establecer la propiedad 'clip subview' en true para el padre UIView y en false para el UIImageView secundario.
Cuando cambio frame.origin propiedad del niño UIImageView programmatically. pero cuando cambio bounds.origin propiedad del padre UIView no veo nada. Probablemente entiendo erróneamente el propósito de bounds.cambiar los límites de la propiedad de UIView no afecta su contenido

¿Qué debo hacer para obtener el comportamiento descrito en la guía de programación de aplicaciones iPhone:

Puede cambiar el origen límites sin cambiar las otras dos propiedades. Cuando lo haga, la vista muestra la parte de la imagen subyacente que ha identificado. En la Figura 2-4 (página 56), el origen de los límites originales se establece en (0.0,0.0). En la Figura 2-5, ese origen se mueve a (8.0,24.0). Como resultado, la vista muestra una porción diferente de la imagen subyacente. Sin embargo, como el rectángulo no cambió, el nuevo contenido se muestra en la misma ubicación dentro de la vista principal como antes.

Gracias de antemano. Andrew

Respuesta

0

Antes que nada, asegúrese de tener una referencia adecuada de la vista de la imagen antes de intentar cambiar los límites. Verifique que no sea nil.

En segundo lugar, puede que tenga que cambiar el rectángulo y luego ponerlo de nuevo en una declaración por separado, así:

CGRect rect = imageView.bounds; 
rect.origin = CGPointMake(whatever, whatever); 
imageView.bounds = rect; 

límites podrían incluso no ser lo que quieres. No sé de dónde sacaste esa cita, pero no suena bien. Intenta usar el marco de la vista de imagen para colocarlo en su supervista.

Cuestiones relacionadas