我有一个问题,我需要旋转 UIImageView 并根据它是纵向模式还是横向模式调整大小。
我已经设法让图像视图正确旋转,正如这个相关问题中的答案所说:Rotate UIImageView Based 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
我最初的天真认为这会神奇地重新缩放以适应适当的景观比例。显然情况并非如此。有什么提示吗?