1

我正在尝试显示 UIImage 的顶部。

我知道我可以使用以下代码并显示中间部分。我只是想弄清楚如何对顶部做同样的事情:

imageView.contentMode = UIViewContentModeScaleAspectFill;
imageView.clipsToBounds = YES;

我从服务器获取的 UIImage 不一定大小相同,所以我不能使用 UIViewContentModeTopLeft。我想要一种缩放图像并显示顶部的方法。

谢谢。

4

2 回答 2

2

您想显示图像的任意矩形,因此最简单的方法是将您的 imageView 放在常规视图中。您可以设置图像视图的框架以显示您想要的位,并设置封闭视图进行剪切。

例如,您有一个 1000 x 1000 像素的图像,并且您想要显示 200,200 到 400,400 的矩形

UIImageView* imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"SomeImage"]];
imageView.frame = CGRectMake( -200, -200, 1000, 1000);
UIView* enclosingView = [[UIView alloc] initWithFrame:CGRectMake( 0, 0, 200, 200);
enclosingView.clipsToBounds = YES;
[enclosingView addSubview: imageView];

在这种情况下,内容模式并不重要,因为您正在设置图像视图的尺寸以匹配图像。

于 2013-04-23T18:30:01.117 回答
0

一种方法是调用CGImageCreateWithImageInRect您的原始图像来创建一个只有顶部的新图像。

就像是:

CGImageRef newImageRef = CGImageCreateWithImageInRect( oldImage.CGImage, CGRectMake(0,0,50,50) );
UIImage *newImage = [UIImage imageWithCGImage:newImageRef];
CGImageRelease( newImageRef );

然后显示 newImage 而不是 oldImage。

于 2013-04-23T18:25:32.587 回答