Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin.ios 图像缩放,使其适合UITableView单元的边界,并在monotouch中保持颜色组合和图像质量_Xamarin.ios - Fatal编程技术网

Xamarin.ios 图像缩放,使其适合UITableView单元的边界,并在monotouch中保持颜色组合和图像质量

Xamarin.ios 图像缩放,使其适合UITableView单元的边界,并在monotouch中保持颜色组合和图像质量,xamarin.ios,Xamarin.ios,问题: 我使用了以下代码来缩放图像,并使其适合monotouch中UITableviewCell的边界。此代码是缩放图像,但它使图像颜色变暗,这意味着它无法保持颜色组合。因此,请提供更好的解决方案 代码: 公共静态UIImage缩放(UIImage源,SizeF newSize) { UIGraphics.BeginImageContext(新闻大小); var context=UIGraphics.GetCurrentContext(); context.TranslateCTM(0,newS

问题

我使用了以下代码来缩放图像,并使其适合monotouch中UITableviewCell的边界。此代码是缩放图像,但它使图像颜色变暗,这意味着它无法保持颜色组合。因此,请提供更好的解决方案

代码

公共静态UIImage缩放(UIImage源,SizeF newSize) { UIGraphics.BeginImageContext(新闻大小); var context=UIGraphics.GetCurrentContext(); context.TranslateCTM(0,newSize.Height); context.ScaleCTM(1f,-1f)


阅读有关iOS中UIView的ContentMode的所有信息

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


我无法为您提供示例代码,因为您尚未提供有关如何创建和填充TableView的任何代码。

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


如果源图像与
UITableViewCell
Mohib-Sheth中的
UIImageView
s大小相同或几乎相同,那么设置
ContentMode
属性的解决方案是最好的。它的源图像比
UITableViewCell
中的
UIImageView
s大得多,滚动速度会更低。

t contentMode属性我已经使用了这些属性,但是使用ScaleSpectToFit并没有完全填充单元格。当我使用ScaleSpect fill并将bounds属性设置为true时,图像的头部部分正在剪切。所以我不能使用contentMode属性。还有其他解决方案吗?我还想使其适合UITableView单元格的边界。您有权限吗s到
UITableVewCell
s
ContentView
。将
UIImageView
放入
ContentView
AddSubview()
方法)并根据
ContentView
框架设置其框架。
        context.DrawImage (new RectangleF (0, 0, newSize.Width, newSize.Height), source.CGImage);

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

        return scaledImage;         
    }