2011-04-14 2 views
0

У меня есть UIView, который используется для наложения на камеру Picker. В этом представлении у меня есть ImageView, в который я поместил изображение (свойство изображения), сделанное камерой.iPhone - Предотвращение изображения для поворота в его UIImageView

Когда фотография берется с iPhone в горизонтальном положении, изображение поворачивается в ImageView. Это плохо, потому что пользователь не видит картинку, как она была сделана.

я положил эти строки кода в ViewController, который управляет наложенные View (владелец файла):

- (void)didAnimateFirstHalfOfRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation 
{ 
    NSLog(@"didAnimateFirstHalfOfRotationToInterfaceOrientation"); 
} 

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation 
{ 
    NSLog(@"didRotateFromInterfaceOrientation"); 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    NSLog(@"shouldAutorotateToInterfaceOrientation"); 
    return YES; 
} 

- (void)willAnimateFirstHalfOfRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration 
{ 
    NSLog(@"willAnimateFirstHalfOfRotationToInterfaceOrientation"); 
} 

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration 
{ 
    NSLog(@"willAnimateRotationToInterfaceOrientation"); 
} 

- (void)willAnimateSecondHalfOfRotationFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation duration:(NSTimeInterval)duration 
{ 
    NSLog(@"willAnimateSecondHalfOfRotationFromInterfaceOrientation"); 
} 

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration 
{ 
    NSLog(@"willRotateToInterfaceOrientation"); 
} 

Даже если я вернусь ДА или НЕТ в shouldAutorotateToInterfaceOrientation, ни один другой элемент журнала не записывается в консоль ,

Я не против, но это ключ. Мое последнее желание - избегать поворота изображения в его изображение. Как я могу это сделать?

Пожалуйста, учтите, что мы говорим о наложении камеры, которые могут реагировать иначе, чем на обычном режиме.

ответ

4

У вас есть правильная концепция, но неправильный подход. Текущая ориентация устройства не влияет на поведение UIImage, если оно находится внутри UIImageView. Если вы хотите изменить это поведение, то вам необходимо указать UIImageOrientation на само изображение, как:

UIImage* rotatedImage = [UIImage imageWithCGImage:myImage.CGImage scale:1.0 orientation:UIImageOrientationLeft]; 
myImageView.image = rotatedImage; 

Обратите внимание, что вы не можете использовать UIImageOrientationLeft, что это только для примера. Вам нужно выбрать ориентацию, которая даст вам конечный результат, который вы хотите, исходя из ориентации, в которой был сделан снимок, и (возможно) текущей ориентации устройства.

Смежные вопросы