我有一个问题,我需要旋转UIImageView并调整大小,具体取决于它是Portraite模式还是Landscape模式。
我设法让图片视图正确旋转,因为这个相关问题的答案如下:Rotate UIImageView Depending on iPhone Orientation。
这是我的旋转代码(现在我只专注于将其旋转到左侧景观):
- (void)rotateImage:(UIImageView *)image duration:(NSTimeInterval)duration
curve:(int)curve degrees:(CGFloat)degrees
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:duration];
[UIView setAnimationCurve:curve];
[UIView setAnimationBeginsFromCurrentState:YES];
float angle = DEGREES_TO_RADIANS(degrees);
CGAffineTransform transform = CGAffineTransformRotate(
CGAffineTransformMakeTranslation(
160.0f-self.view.center.x,
240.0f-self.view.center.y
),angle);
image.transform = transform;
[UIView commitAnimations];
}
我如何启动UIImageView:
UIImage *image = [UIImage imageNamed:@"picture.png"];
self.testImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 400)];
self.testImageView.image = image;
self.testImageView.contentMode = UIViewContentModeScaleAspectFit;
self.testImageView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
现在发生的事情是图像旋转但是在横向模式下与纵向模式相同,但是居中(我理解为什么,因为我将旋转作为链接问题的答案)。
所以,我想要的是全屏观看图像,因为原始图像具有适合全屏风景的比例。正如我已经设定
UIViewContentModeScaleAspectFit
我最初的天真认为这会神奇地重新缩放以适应适当的景观尺度。显然情况并非如此。任何提示?
答案 0 :(得分:-1)
尝试使用UIViewContentModeScaleAspectFit并在父视图属性autoresizesSubviews中设置为YES。图像应自动调整大小。