【发布时间】:2016-10-26 01:42:55
【问题描述】:
我有一个CGSize 需要发送到我的服务器的对象。我可以发送到服务器的最大尺寸为 900*900(900 宽/900 高)。
有些对象比 900*900 更大,我想编写一个函数将它们调整到最大值(正如我已经说过的,最大值为 900*900),但要保持纵横比。
例如:如果我有一个 1,000 像素宽和 1,000 像素高的对象,我希望函数返回一个 900*900 的对象。如果我有一个宽度为 1920 像素、高度为 1080 像素的对象,我希望它在保持比率的情况下返回可能的最大尺寸。
有人知道我该怎么做吗?
谢谢!
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*1080 与1920*1080 的纵横比不同,而且比900*900 大。
你能再解释一下吗?
【问题讨论】:
-
@originaluser2 我不需要它来适应
CGRect,只是为了获得最大尺寸 -
好的,所以传入
CGPointZero作为原点,然后输出大小 -
@originaluser2 嘿,谢谢,我已经编辑了我的问题并为您提供了答案,请看一下,谢谢!
标签: objective-c c swift algorithm cocoa-touch