Determinar se o ret de corte está totalmente contido no UIView girado

Premissa: estou construindo uma ferramenta de corte que lida com a rotação arbitrária de uma imagem com dois dedos e com o corte arbitrário.

Às vezes, a imagem acaba girando de forma a inserir espaço vazio para preencher uma lacuna entre a imagem girada e o recorte recortado (veja os exemplos abaixo).

Preciso garantir que a exibição da imagem, quando girada, se ajuste totalmente ao retângulo de corte. Caso contrário, preciso transformar novamente a imagem (ampliá-la) para que ela caiba nos limites do corte.

Usandoesta resposta, Implementei a capacidade de verificar se um UIImageView girado se cruza com o CGRect de corte, mas infelizmente isso não me diz se o retângulo de corte éinteiramente contido na visualização de imagem girada. Esperando que eu possa fazer algumas modificações fáceis nesta resposta?

Um exemplo visual de OK:

e não está bem, com o que eu preciso detectar e lidar:

Atualizar: método não está funcionando

- (BOOL)rotatedView:(UIView*)rotatedView containsViewCompletely:(UIView*)containedView {

    CGRect rotatedBounds = rotatedView.bounds;
    CGPoint polyContainedView[4];

    polyContainedView[0] = [containedView convertPoint:rotatedBounds.origin toView:rotatedView];
    polyContainedView[1] = [containedView convertPoint:CGPointMake(rotatedBounds.origin.x + rotatedBounds.size.width, rotatedBounds.origin.y) toView:rotatedView];
    polyContainedView[2] = [containedView convertPoint:CGPointMake(rotatedBounds.origin.x + rotatedBounds.size.width, rotatedBounds.origin.y + rotatedBounds.size.height) toView:rotatedView];
    polyContainedView[3] = [containedView convertPoint:CGPointMake(rotatedBounds.origin.x, rotatedBounds.origin.y + rotatedBounds.size.height) toView:rotatedView];

    if (CGRectContainsPoint(rotatedView.bounds, polyContainedView[0]) &&
        CGRectContainsPoint(rotatedView.bounds, polyContainedView[1]) &&
        CGRectContainsPoint(rotatedView.bounds, polyContainedView[2]) &&
        CGRectContainsPoint(rotatedView.bounds, polyContainedView[3]))
        return YES;
    else
        return NO;
}

questionAnswers(1)

yourAnswerToTheQuestion