26

我正在尝试创建一个在我的 xcode 应用程序中弹出的框,该框仅显示该大小的图像。我有以下

UIImageView *newView=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"beach.jpg"]];

但这会创建完整尺寸的图像并仅显示它。我如何在 50 以上和 200 下仅将其显示为 100w x 100h?我会使用 CGRect 吗?

另外,我可以让它点击它会导致它消失吗?

编辑#1 我不想缩小图像的大小 - 宁愿只拉出 100 个平方像素并将它们放在一个框架中。

4

3 回答 3

76

Please try using the following code.

MyImageview.contentMode = UIViewContentModeScaleAspectFill; 
MyImageview.clipsToBounds = YES;
于 2012-12-05T02:45:22.917 回答
15

您可以使用以下代码裁剪图像:

CGRect cropRegion = CGRectMake(50, 200, 100, 100);
UIImage *image = [UIImage imageNamed:@"beach.jpg"];
CGImageRef subImage = CGImageCreateWithImageInRect(image.CGImage, cropRegion);
UIImage *croppedImage = [UIImage imageWithCGImage:subImage];
UIImageView *newView = [[UIImageView alloc] initWithImage:croppedImage];
于 2014-02-12T07:28:41.130 回答
14

您还可以通过选中情节提要中的Clip Subviews选项来实现裁剪效果。

在此处输入图像描述

或Swift 4+代码中的等效设置

imageView.contentMode = .scaleAspectFill
imageView.clipsToBounds = true
于 2015-12-15T04:48:54.337 回答