如何使用自动布局按比例缩小 NSImageView?
Posted
技术标签:
【中文标题】如何使用自动布局按比例缩小 NSImageView?【英文标题】:How to scale down NSImageView proportionally using auto layout? 【发布时间】:2016-01-12 17:19:29 【问题描述】:我有多个不同尺寸和比例的NSImageView
在水平空间有限的视图中垂直堆叠。
由于图像尺寸可能大于父视图的尺寸,我想使用NSImageScaleProportionallyDown
按比例缩小它们。
对我来说问题似乎是NSImageViews
的默认行为,它只缩小超出自动布局设置的约束的轴,然后将NSImage
居中在NSImageView
中,这会导致@987654326 @ 占据尽可能多的高度,就好像它根本没有按比例缩小一样,并且由于图像之间的空间不同而破坏了垂直流动。
我尝试设置[questionImage setContentHuggingPriority:NSLayoutPriorityRequired forOrientation:NSLayoutConstraintOrientationHorizontal];
,但没有成功。
那么如何使 NSImageView 只占用按比例缩放的 NSImage 所需的空间?
【问题讨论】:
【参考方案1】:那么如何让 NSImageView 只占用按比例缩放的 NSImage 所需的空间?
您需要知道图像的纵横比,并设置 NSImageView 的宽度约束multiplier
相对于其高度约束(反之亦然),以强制执行相同的纵横比。换句话说,如果图像视图的宽度是由外部约束决定的,那么它的高度需要由它的结果宽度来决定(通过它的multiplier
),反之亦然。
【讨论】:
简单而伟大的解决方案,现在当你提到它时似乎如此明显。谢谢! :) 该死!为此,我把头撞在墙上好几个小时。愚蠢,显然很简单!谢谢马特!【参考方案2】:我不知道您的问题的答案,但想建议一种替代方法,如果在您的用例中可能的话。在将它们放置在图像视图中之前,如何缩小真实图像。这样您还可以节省一些内存,因为图像视图的内容本身会更小。您可以找到我提供的用于在 ios 上缩放图像的示例。我做了一个快速检查,看来您可以为 OSX 编写类似的代码。示例见In iOS, how to convert a web image into a less-quality one?。
【讨论】:
以上是关于如何使用自动布局按比例缩小 NSImageView?的主要内容,如果未能解决你的问题,请参考以下文章
fastreport4 picture 动态 设定大小,我的产品图像打印需要从数据库中读取,再按一定比例进行缩小。
visio 如何按指定比例调整形状大小,指定比例进行放大缩小