我有一个标准的UITableViewCell,使用文本和图像属性显示favicon.ico和标签。在大多数情况下,这很有效,因为UIImage支持ICO格式。但是,某些站点(例如Amazon.com这样)具有favicon.ico,它们利用了ICO格式在同一文件中存储多个大小的功能。亚马逊存储四种不同的尺寸,一直到48x48。

这导致大多数图像为16x16,除了少数以32x32或48x48输入的图像之外,其他一切看起来都很糟糕。我在这里,官方论坛,文档以及其他地方进行了搜索,但均未成功。我已经尝试过一切可以限制图像大小的方法。唯一起作用的是未记录的方法,我将不使用该方法。这是我的第一个应用程序,也是我第一次使用Cocoa(来自C#)。

如果我不清楚要查找的内容,则理想情况下,建议将围绕UIImage的尺寸设置,以使48x48版本缩小到16x16,或者告诉UIImage使用当前存在的16x16版本的方法。 ICO文件。我不一定需要代码:仅建议一种方法就可以了。

有没有人有什么建议? (我在官方论坛as well中问,因为我已经沉迷了一天多。如果在那里发布了解决方案,我也将其放在这里。)

最佳答案

这是用户在官方论坛posted上进行的“bcd”操作,最终解决了该问题(我自己稍作修改,使其静态化,以包含在一组实用程序方法中):

+ (UIImage *)scale:(UIImage *)image toSize:(CGSize)size
{
    UIGraphicsBeginImageContext(size);
    [image drawInRect:CGRectMake(0, 0, size.width, size.height)];
    UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return scaledImage;
}

关于iphone - 在UITableViewCell图像上设置UIImage尺寸,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/941604/

10-13 06:16