CGSize
개체를 서버에 보내야합니다. 서버에 보낼 수있는 최대 크기는 900 * 900 (900 폭/900 높이)입니다.가로 세로 비율을 유지하면서 CGSize의 최대 크기를 조정하십시오.
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
, 어쨌든 1080*1080
가 같은 화면 비율에없는 이유를 이해할 수 없다, {x 420 y 0 w 1,080 h 1,080}
입니다 :
이 코드를 시도했습니다 1920*1080
으로 표시되며 900*900
보다 큽니다.
좀 더 설명 할 수 있습니까?
는 [ 'AVMakeRectWithAspectRatioInsideRect']에서보세요 (https://developer.apple .com/library/ios/documentation/AVFoundation/Reference/AVFoundation_Functions/# // apple_ref/c/func/AVMakeRectWithAspectRatioInsideRect) – Hamish
@ originaluser2 최대 크기를 얻기 위해'CGRect '에 맞출 필요가 없다. –
물론 원점에 대해서'CGPointZero'를 넘겨 주면 크기를 알 수 있습니다. – Hamish