它设置如下:
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不重绘所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)