gpt4 book ai didi

cocoa - 调整大小的 NSImageView 不重绘

转载 作者:行者123 更新时间:2023-12-03 16:07:38 25 4
gpt4 key购买 nike

我有一个 NSImageView,它从应用程序包加载图像。

设置如下:

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

图像显示得很好。

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

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

第一次完成时(应用程序启动时),效果非常好。

NSImageView 具有相应的大小,并且包含的​​图像在适当的边框处被截断。

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

NSLogging coverImage.frame 显示框架本身已正确更新。然而, View 似乎没有被重新绘制 - 无论是在缩小框架时还是在增长框架时。此外,当我退出并重新启动应用程序时,NSImageView 会绘制正确的边框。

什么会导致这种行为?

是否有可能 NSImageView 根本没有重绘?如果是这样,我怎样才能强制重绘?

我错过的 NSImageView 是否还有其他怪癖可能导致此行为?

编辑:

事实证明,只有当 ImageFrameStyle 属性设置为 NSImageFrameNone 时,才会发生此错误。如果框架设置为其他任何内容,它就会重新绘制。不幸的是,我们需要在没有框架的情况下显示图像。

有和没有框架的 NSImageViews 渲染有什么区别可以解释这一点吗?

最佳答案

我在将 NSImageView imageFrameStyle 属性设置为 NSImageFrameNone 时遇到了非常类似的问题。问题出在自动布局设置中。您可以在这里查看我的问题:NSImageView won't scale image down if frame style is NSImageFrameNone

关于cocoa - 调整大小的 NSImageView 不重绘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7045442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com