2011-04-14 9 views
0

私は、cameraPickerのオーバーレイに使用されるUIViewを持っています。このビューには、カメラで撮影した画像(画像プロパティ)を置くImageViewがあります。iPhone - 画像がUIImageViewに回転しないようにする

iPhoneを水平位置で撮影すると、画像がImageViewに回転します。これは、写真が撮影されたときにユーザーが画像を見ないために悪いことです。

私がオーバーレイ表示(ファイルの所有者)を管理しているのViewControllerにコードのこれらの行を入れていた:

- (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にYESを返すか、NO場合でも、他のログ項目がコンソールに書き込まれていません。

私はこれを本当に気にしませんが、それは手がかりです。私の最後の願いは、イメージがイメージビューに回転しないようにすることです。どうすればいいですか?

通常のビューとは異なる方法で反応する可能性があるカメラオーバーレイについては、あなたが答えていると考えてください。

答えて

4

あなたは正しいコンセプトを持っていますが、間違ったアプローチです。現在のデバイスの方向は、UIImageViewの内部に配置されたときに、UIImageの動作に影響しません。あなたは、この動作を変更したい場合、あなたは次のように、画像自体にUIImageOrientationを指定する必要があります:あなたはUIImageOrientationLeftを使用したくないかもしれません

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

注意、それは単なる一例です。あなたは、画像が取り込まれた方向と(多分)現在の装置の向きに基づいて、必要な最終結果を与える方向を選択する必要があります。

関連する問題