cocoa – 调整大小的NSImageView不重绘

cocoa – 调整大小的NSImageView不重绘,第1张

概述我有一个NS ImageView,它从应用程序包中加载一个图像. 它设置如下: coverImage.image = [NSImage imageNamed:@"themeSignEnd.png"];coverImage.imageScaling = NSImageScaleNone;coverImage.imageAlignment = NSImageAlignLeft; 图像显示得很好. 我有一个NS ImageVIEw,它从应用程序包中加载一个图像.

它设置如下:

coverImage.image = [NSImage imagenamed:@"themeSignEnd.png"];coverImage.imageScaling = NSImageScaleNone;coverImage.imageAlignment = NSImageAlignleft;

图像显示得很好.

NSImageVIEw的大小是基于其他几个因素计算的,然后使用以下代码进行设置:

coverImage.frame = CGRectMake((1280 - 869) / 2,869 * percentage,800);

这在第一次完成时(应用程序启动时)完全正常.

NSImageVIEw采用大小,所包含的图像在适当的边界处被截断.

不幸的是,当我尝试在应用程序运行时调整NSImageVIEw的大小(使用上面相同的代码)时,它不会明显更新.

NSLogging coverImage.frame表明框架本身已正确更新.但是,视图似乎没有重新绘制 – 无论是缩小还是增长帧时.此外,当我退出并重新启动应用程序时,NSImageVIEw会绘制正确的边框.

什么可能导致这种行为?

是否可能不重绘NSImageVIEw?如果是这样,我该如何强制重绘?

我错过了NSImageVIEw的任何其他怪癖会导致这种行为吗?

编辑:

事实证明,只有在ImageFrameStyle属性设置为NSImageFrameNone时才会出现此错误.如果框架设置为其他任何东西,它会被重新绘制得很好.不幸的是,我们需要在没有框架的情况下显示图像.

NSImageVIEws在有和没有框架的渲染中有什么区别可以解释这个吗?

解决方法 我将NSImageVIEw imageFrameStyle属性设置为NSImageFrameNone的问题非常类似.发生问题的原因是自动布局设置.你可以在这里查看我的问题: NSImageView won’t scale image down if frame style is NSImageFrameNone 总结

以上是内存溢出为你收集整理的cocoa – 调整大小的NSImageView不重绘全部内容,希望文章能够帮你解决cocoa – 调整大小的NSImageView不重绘所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1020404.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存