【问题标题】:NSImageView won't scale image down if frame style is NSImageFrameNone如果框架样式为 NSImageFrameNone,则 NSImageView 不会缩小图像
【发布时间】:2013-12-03 10:14:15
【问题描述】:

我需要在可调整大小的NSWindow 上显示NSImageView。如果视图中显示的图像太大而无法适应窗口中的图像视图,则视图中显示的图像应按比例缩小,并且在调整窗口大小时也应更改其大小。我能够使用自动布局实现正确的行为,并将NSImageViewimageScaling 属性设置为NSImageScaleProportionallyDown。不幸的是,当我的图像视图的imageFrameStyle 属性设置为NSImageFrameNone(它适用于任何其他选项,如NSImageFramePhotoNSImageFrameGrayBezel)时,它不起作用。我不希望显示任何帧,例如 NSImageFrameNone,但禁用帧会破坏自动调整大小 - 看起来将帧设置为 NSImageFrameNone 图像未按比例缩小,NSImageView 已按比例放大以匹配显示的图像尺寸。有人有解决这个问题的办法吗?

【问题讨论】:

    标签: objective-c cocoa nsimageview


    【解决方案1】:

    这比我想象的要容易。问题在于自动布局,而不是 NSImageView 缩放逻辑。使用 InterfaceBuilder 并选择了我的图像视图,我必须将“内容压缩阻力优先级”更改为较低的值(它位于 Xcode5 中的 Size Inspector 选项卡上)。这解决了我的问题,现在调整窗口大小时图像可以正确缩放。

    【讨论】:

    • 你能帮我解决一个问题吗?实际上我有一个特定尺寸 817x460 的视图,我在该视图中有对象,如 NSButton、NSImageView 等。但是当我最大化视图时,对象不会被拉伸,即即使使用自动布局和您的解决方案,大小也是恒定的.您能否告诉我如何放大视图和对象以使其与窗口大小兼容。请帮助我,谢谢:)
    猜你喜欢
    • 2015-06-11
    • 1970-01-01
    • 2016-10-19
    • 1970-01-01
    • 1970-01-01
    • 2021-04-28
    • 1970-01-01
    • 2011-11-02
    • 2013-08-26
    相关资源
    最近更新 更多