3

这个问题可能已经得到解答,但经过数小时的谷歌搜索,我找不到解决问题的方法。

UIImageView自定义 UITableCell中有一个UIImage(320*320),里面有一个(320*320)。当我点击一个按钮时,UIImageView大小调整为 320*80(动画)和 UIImage。

我该怎么做才能防止UIImage调整大小?我希望它UIImage保持不变,并且只显示该图像的一部分(原点为 0/0 的 320*80 帧)

编辑:裁剪

我想过将图像裁剪为正确的大小,然后将UIImageView 的图像设置为全尺寸图像,但它看起来很难看,因为当用户单击UIImageView时,这个仍然是 320*320 但UIImage已设置为裁剪后的图像一(320 * 80)所以它被拉伸......

谢谢

4

3 回答 3

3

您可以调整图像大小,然后将 UIImageView 图像替换为调整后的图像。

CGImageRef imageToBeResized = yourImage.CGImage;
CGImageRef partOfImageAsCG = CGImageCreateWithImageInRect(imageToBeResized, CGRectMake(0, 0, 320, 80));
CGRelease(imageToBeResized);
UIImage *resizedImage = [UIImage imageWithCGImage:imageToBeResized];
于 2012-05-05T14:45:24.140 回答
3

我在我的一个应用程序中做类似的事情,当我创建UIImageView对象时,我将属性设置contentModeUIViewContentModeScaleAspectFill,并将clipsToBounds属性设置为YES。希望这可以帮助。

于 2012-05-05T17:53:07.787 回答
1

也许你应该考虑在你的 UIImageView 里面使用一个 UIScrollView 。因此,您可以使用其属性来归档所需的行为。

于 2012-05-05T15:57:19.433 回答