【问题标题】:What could cause a UIImageView to only display / render half of the loaded Image?什么可能导致 UIImageView 仅显示/渲染加载图像的一半?
【发布时间】:2014-09-04 14:49:35
【问题描述】:

在应用程序中导航时,标题有一个徽标,该徽标会根据部分加载标题图像。为了测试,我现在总是使用相同的图像文件,但是......调用相同的方法来更改 uiimageview 的图像(将 uiimageview 作为参数传递)我有时只得到一半的图像被渲染......我想首先,可能是框架或边界将其切断,但将 clipstobounds、backgroundcolor 设置为蓝色,并记录框架/边界表明,据我所知,情况并非如此。这种情况偶尔会发生,因此相同的代码有时会加载完整的图像,有时只加载一半。

这是我正在使用的代码:

rightLogo.Image = null;
rightLogo.ClipsToBounds = false;
rightLogo.BackgroundColor = UIColor.Blue;
UIImage imageTest = UIImage.FromFile (path);
if (imageTest != null)
    imageView.Image = imageTest;

根据日志告诉我,图像视图的框架/边界始终设置为 90,图像的高度为 180(对于视网膜),内容模式设置为缩放纵横比...

添加到这个: 我发现将其设置为不缩放图像将始终显示完整图像。想知道这是否是比例方面适合/完整(都尝试过)导致的问题。我已经在运行 ios7 的 iPad 3 和运行 ios6 的 iPad 2 以及模拟器上进行了测试。

【问题讨论】:

  • 图片在文件系统中是如何存储的?
  • 图像在运行时下载(除非文件已经存在)使用File.Open (filePath, FileMode.Create);打开文件流
  • 您是否考虑过使用第三方库,例如github.com/rs/SDWebImage?它几乎没有内置选项来处理下载图像时的中断。
  • 唯一的问题是,一旦下载它就不会再打开流了,但是即使使用同一个文件,有时也偶尔只加载一半......

标签: ios uiimageview xamarin.ios uiimage


【解决方案1】:

在 xcode 导航栏中转到 Product 并选择 Clean" 或者您可以按 UPkey + command + K。

接下来从模拟器中删除应用程序。

这应该有助于它正确执行。

或者

在情节提要中,选择您的 UIImage 并在“Size Inspector”中转到内容压缩阻力,并在水平和垂直方向上更改为 100。

【讨论】:

  • 对不起,这在模拟器和设备上都会发生,两者都运行干净。应用程序加载,下载文件,并更新标题。图像看起来很好,导航到屏幕 2,它只显示一半,转到屏幕 3,看起来很好,回到屏幕 2,它很好。当您在屏幕上移动时,有时会很好,有时则不会。
  • @user3661140 你用的是什么设备?您可以编辑您的帖子并展示您的方法或更多代码吗?你使用的是什么 segue 并且你使用的是 prepareForSegue 方法吗?
  • 请查看我编辑的关于压缩设置的建议
  • 抱歉,晚上回家了。虽然我没有使用自动布局,但我的自动调整大小设置为允许它在高度上拉伸。删除它似乎已经解决了这个问题。谢谢!
  • @user3661140 很高兴我能帮上忙 :-)
猜你喜欢
  • 2012-09-24
  • 2011-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-04
  • 1970-01-01
  • 2018-07-18
  • 2015-06-29
相关资源
最近更新 更多