objective-c - 如何使用自动布局按比例缩小 NSImageView ?

标签 objective-c cocoa autolayout nsimageview

我有多个不同尺寸和比例的 NSImageView,它们垂直堆叠在水平空间有限的 View 中。

由于图像尺寸可能大于父 View 的尺寸,我想使用 NSImageScaleProportionallyDown 按比例缩小它们。

对我来说,问题似乎是 NSImageViews 的默认行为,它只缩小超出自动布局设置的约束的轴,然后将 NSImage 居中NSImageView,这会导致 NSImageView 占据尽可能多的高度,就好像它根本没有缩小一样,并且由于图像之间的空间变化而破坏了垂直流。

我尝试设置 [questionImage setContentHuggingPriority:NSLayoutPriorityRequired forOrientation:NSLayoutConstraintOrientationHorizo​​ntal]; 但没有成功。

那么如何让 NSImageView 只占用按比例缩放的 NSImage 所需的空间?

最佳答案

So how do you make the NSImageView only take up as much space as the proportionally scaled NSImage requires?

您需要知道图像的宽高比,并根据其高度约束设置 NSImageView 的宽度约束乘数(反之亦然),以便强制执行相同的宽高比。换句话说,如果 ImageView 的宽度由外部约束确定,则其高度需要由其结果宽度确定(通过其乘数),反之亦然。

关于objective-c - 如何使用自动布局按比例缩小 NSImageView ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34749946/

相关文章:

objective-c - 通过套接字与 ESMTP 协商 TLS

ios - 如果我使用 Storyboard 中的 "Add missing constraints"选项来在 Storyboard 中分配约束会怎样?

ios - 为 AVURLAssets 设置 HTTP header 字段

ios - iOS (iPhone/iPad) 中的串行或 HID (usb) 通信

objective-c - 使用 Objective-C 运行时查找声明它们符合特定协议(protocol)的类

cocoa - 拖放到非 View

iphone - 如何通过填写 NSDictionary 以 JSON 格式发送 UIImage

objective-c - 检查 NSWindow 当前是否处于缩放状态?

swift - 以编程方式设置约束优先级

ios - 具有多个按钮和字体的多行 UILabel