Como cortar um UIImageView para um novo UIImage no modo 'ajuste de aspecto'?

Eu gostaria de criar um novo UIImage cortando a imagem dentro de um UIImageView. Por exemplo, na foto acima, eu quero um novo UIImage da área delineada em verde. Eu encontrei código para fazer isso, normalmente parece algo como isto (como uma categoria UIImage):

- (UIImage *)croppedImage:(CGRect)bounds {
    CGImageRef imageRef = CGImageCreateWithImageInRect([self CGImage], bounds);
    UIImage *croppedImage = [UIImage imageWithCGImage:imageRef];
    CGImageRelease(imageRef);
    return croppedImage;
}

Faz todo o sentido. NO ENTANTO, meu UIImageView está em 'ajuste de aspecto' do contentMode. Parece que isso complica os cálculos CGRect para CGImageCreateWithImageInRect e eu não consegui descobrir a solução certa.

Eu acho que preciso aplicar as mesmas transformações para o retângulo verde como foram feitas para a imagem?

TAMBÉM: Eu encontrei essa outra pergunta aqui (Como saber o tamanho da imagem depois de aplicar ajuste de aspecto para a imagem em um UIImageView), que parece mostrar uma forma de força bruta de obter o tamanho, mas ainda não tenho certeza de como isso se encaixa em uma situação de corte.

Alguma ideia?

EDITAR: No meu caso, eu literalmente tenho um quadrado como mostrado acima desenhado em uma vista de sobreposição sobre o UIImageView. Então, enquanto eu percebo que estou cortando o UIImage (dentro do UIImageView), eu preciso de alguma forma mudar o CGRect verde de tal forma que 'corresponda' à transformação feita quando 'aspect fit' é aplicado. Por exemplo, se eu deixar meu UIImageView no modo "superior esquerdo", tudo funcionará bem, porque há um mapeamento 1: 1 entre o UIImage subjacente e o UIImageView. O problema no modo "superior esquerdo" é que a imagem inteira nem sempre é exibida, porque pode ser maior do que o meu UIImageView.

questionAnswers(4)

yourAnswerToTheQuestion