在全屏的UIImageView横向模式影像(landscape mode images in a f

2019-09-19 19:10发布

是否有可能以不同的方式让UIImageView的手柄风景图片来自人像图像?

我会尽力解释,我有ImageViewControllerUIImageView ,填补了整个屏幕。
在一些点上用户推出UIImagePickerController ,并从相机胶卷的照片。
然后,我创建的实例ImageViewController与图片,并将它推

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];


    ImageViewController *ivc = [[ImageViewController alloc] initWithImage:image];
    [picker pushViewController:ivc animated:YES];
    [ivc release];
}

问题是,如果图像是在横向模式下,它仍然充满了整个屏幕。
我希望它看起来像iPhone的照片应用程序是如何呈现的风景图像(在屏幕中央,背景为黑色)。

是否有办法构建以显示UIImageView的横向模式影像? 或者我需要根据图像方向设置ImageView的框架?

Answer 1:

只要设定这样的:

imageView.contentMode = UIViewContentModeAspectFit;

并能持续的比重适应屏幕,不加油吧。



Answer 2:

你可能想改变UIImageViewcontentMode根据画面的比例财产。

因此,在viewDidLoad

if (imageView.image.size.height > imageView.image.size.width) { 
    imageView.contentMode = UIViewContentModeAspectFill;
} else { 
    imageView.contentMode = UIViewContentModeAspectFit; 
}

并且当用户切换到风景,改变模式,以便例如在willAnimateRotationToInterfaceOrientation:duration:

if (UIInterfaceOrientationIsLandscape(toIntefaceOrientation)){
   if (imageView.image.size.height > imageView.image.size.width) { 
       imageView.contentMode = UIViewContentModeAspectFit;
   } else { 
       imageView.contentMode = UIViewContentModeAspectFill; 
   }
} else {
   if (imageView.image.size.height > imageView.image.size.width) { 
       imageView.contentMode = UIViewContentModeAspectFill;
   } else { 
       imageView.contentMode = UIViewContentModeAspectFit; 
   }
}

注意:注意测试,但可能工作



Answer 3:

UIImageView *imgView;
imgView.contentMode = UIViewContentModeCenter;


文章来源: landscape mode images in a full screen UIImageView