保持纵横比,将CGSize调整到最大

问题描述 投票:6回答:2

我有一个CGSize对象,我需要发送到我的服务器。我可以发送到服务器的最大尺寸是900 * 900(900宽度/ 900高度)。

有一些对象比900 * 900更大,我想编写一个函数来调整它们的最大值(正如我已经说过的,最大值是900 * 900)但要保持宽高比。

例如:如果我有一个宽度为1,000px且高度为1,000px的对象,我希望该函数返回一个900 * 900对象。如果我有一个1920px宽度和1080px高度的对象,我希望它能保持比率,尽可能返回最大尺寸。

任何人都知道我该怎么做?

谢谢!

OriginalUser2回答:

我试过这段代码:

let aspect = CGSizeMake(900, 900)
let rect = CGRectMake(0, 0, 1920, 1080)

let final = AVMakeRectWithAspectRatioInsideRect(aspect, rect)

final{x 420 y 0 w 1,080 h 1,080},我无法理解为什么x = 420,但无论如何1080*10801920*1080的长宽比不同,而且它比900*900更大。

你能解释一下吗?

objective-c c swift algorithm cocoa-touch
2个回答
© www.soinside.com 2019 - 2024. All rights reserved.