图像缩放,使其适合UITableView单元格的边界,同时保持单色的颜色组合和图像质量

时间:2013-08-07 05:32:55

标签: xamarin.ios

问题

我使用下面的代码来缩放图像,并使其适合单元内UITableviewCell的边界。这个代码是缩放图像,但它使图像颜色变暗意味着它不保持颜色组合。所以请提供任何更好的解决方案。< / p>

代码

public static UIImage Scale(UIImage源,SizeF newSize)         {             UIGraphics.BeginImageContext(newSize);             var context = UIGraphics.GetCurrentContext();             context.TranslateCTM(0,newSize.Height);             context.ScaleCTM(1f,-1f);

        context.DrawImage (new RectangleF (0, 0, newSize.Width, newSize.Height), source.CGImage);

        var scaledImage = UIGraphics.GetImageFromCurrentImageContext();
        UIGraphics.EndImageContext();

        return scaledImage;         
    }

2 个答案:

答案 0 :(得分:1)

如果您想要缩放UIImage,请参阅this method。它工作正常。您应该将方法的结果缓存在文件系统中,以避免每个GetCell上的图像缩放。

如果源图像与UIImageView UITableViewCell中的ContentMode s相同或几乎相同,则设置UIImageView属性的Mohib Sheth解决方案最佳。源图像的大小比UITableViewCell中的{{1}}大得多,滚动速度会更低。

答案 1 :(得分:0)

在iOS here

中阅读有关UIView的ContentMode的所有内容

根据您的要求,您需要将ContentMode属性设置为UIViewContentModeScaleAspectFit

我无法帮助您提供示例代码,因为您还没有提供有关如何创建代码的任何代码。填充TableView。