tengo imagen como esta imagen se presentará en modo horizontalnecesita ayuda sobre contentMode y autoresizingMask de UIImageView
por lo que si el dispositivo de rotación para retrato, la forma de presentar la imagen como esta
tengo imagen como esta imagen se presentará en modo horizontalnecesita ayuda sobre contentMode y autoresizingMask de UIImageView
por lo que si el dispositivo de rotación para retrato, la forma de presentar la imagen como esta
Tendrá que trabajar con la capa de la vista.
Usted puede encontrar las directrices apropiadas en https://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/CoreAnimation_guide/Articles/Layers.html
Espero que esto ayude.
Gracias,
Jim.
Parece que lo que estás tratando de hacer es recortar la imagen de la derecha, dejando la parte superior, izquierda e inferior iguales.
Dos cosas para probar:
1) Subclase UIView y en el método drawRect
, ajustar el rect y sacan la imagen recortada utilizando CGContextDrawImage (context, rect, sourceImage.CGImage)
.
2) Use CALayers. Se puede ajustar el 'contentsRect' de la capa de la imageView:
CALayer* imageLayer = imageView.layer;
imageLayer.masksToBounds = YES;
CGRect rect;
if (inPortrait)
rect = CGRectMake(0.0, 0.0, 0.5, 1.0); // half size
else
rect = CGRectMake(0.0, 0.0, 1.0, 1.0); // full size
imageLayer.contentsRect = rect;
Este rebana la imagen por la mitad a lo ancho. masksToBounds
se ocupa de las subcapas de recorte (en caso de que las tenga). Puede ajustar el rectángulo de la unidad contentsRect
para ajustar donde desea el corte. También es posible que desee ajustar los propios límites de imageView para que coincida con el tamaño.
Esto tiene una ventaja añadida en que el ajuste de los contenidosRect se anima automáticamente, por lo que cuando haces la rotación, el ancho se anima y desaparece muy bien.
gracias Ramin, im tratando de su código – RAGOpoR
Ramin me dijiste algo de código tutorial o ejemplo? mi código está usando UIView y crear UIImageView en el interior, es tan complicado convertir mi código a su sugerencia gracias por toda la ayuda Ramin – RAGOpoR
Pruebe la opción n. ° 2 anterior. Conecte su UIImageView ivar en la primera línea de fragmento publicado anteriormente. inPortrait es un BOOL, configúrelo en SÍ o NO y vea si hace lo que necesita hacer. Esa es probablemente la forma más fácil de ir. – Ramin
// Set the layer contents
view.layer.contents = [image CGImage];
// Stretch so that contents overflows the edges and keeps aspect ratio
view.layer.contentsGravity = kCAGravityResizeAspectFill;
// Clip off the overflow
view.layer.masksToBounds = YES;
// Set the frame
CGRect frame;
frame.origin = CGPointZero;
frame.size = view.superview.bounds.size;
view.frame = frame;
// Make sure it resizes when the superview does
view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
gracias rpetrich, ¿podría decirme más información por favor? no entiendo acerca de esta imagen variable y ver – RAGOpoR
tengo assigen mi UIImageView para ver y hacer una imagen así que tiene algún error como este "_kCAGravityResizeAspectFill", referenciado de: – RAGOpoR
'kCAGravityResizeAspectFill' está en QuartzCore.framework. Necesitarás referenciarlo.Además, mis instrucciones eran para un 'UIView' (aunque no veo por qué no podrían aplicarse también a' UIImageView') – rpetrich
utilizar un UIImageView con estos valores:
imageView.autoresizingMask = (UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight);
imageView.contentMode = UIViewContentModeScaleAspectFit;
gracias por su información Jim – RAGOpoR