Ich habe eine CGSize
Objekte, die ich an meinen Server senden muss. Die maximale Größe, die ich an den Server senden kann, ist 900 * 900 (900 Breite/900 Höhe).Resize CGSize auf das Maximum mit dem Seitenverhältnis
Es gibt einige Objekte, die größer sind die 900 * 900 und ich möchte eine Funktion schreiben, die sie auf das Maximum ändert (wie ich bereits sage, das Maximum ist 900 * 900), aber das Seitenverhältnis zu halten.
Zum Beispiel: Wenn ich ein Objekt habe, das 1000px Breite und 1000px Höhe ist, möchte ich, dass die Funktion ein 900 * 900 Objekt zurückgibt. Wenn ich ein Objekt mit einer Breite von 1920px und einer Höhe von 1080pX habe, möchte ich, dass es die maximal mögliche Größe zurückgibt, wobei das Verhältnis beibehalten wird.
Jeder hat eine Idee, wie kann ich das tun?
Vielen Dank!
OriginalUser2 Antwort:
Ich habe diesen Code versucht:
let aspect = CGSizeMake(900, 900)
let rect = CGRectMake(0, 0, 1920, 1080)
let final = AVMakeRectWithAspectRatioInsideRect(aspect, rect)
final
ist {x 420 y 0 w 1,080 h 1,080}
, kann ich nicht verstehen, warum die x = 420
, aber trotzdem 1080*1080
nicht im selben Seitenverhältnis als 1920*1080
und es ist größer als 900*900
.
Können Sie etwas mehr erklären?
Werfen Sie einen Blick auf [ 'AVMakeRectWithAspectRatioInsideRect'] (https://developer.apple .com/Bibliothek/ios/documentation/AVFoundation/Referenz/AVFoundation_Functions/# // apple_ref/c/func/AVMakeRectWithAspectRatioInsideRect) – Hamish
@ originaluser2 Ich brauche es nicht in eine 'CGRect' passen, nur um die maximale Größe –
zu erhalten Sicher, also gib 'CGPointZero' für den Ursprung ein und verlass die Größe – Hamish