Камера наложения не меняет альбомную ориентацию (влево и вправо) в iPhone4? - PullRequest
0 голосов
/ 07 декабря 2011

Я настроил камеру с помощью пользовательских кнопок (UIButton) в режиме наложения. Приложение для iPhone будет работать только в ландшафтном режиме (слева и справа). Теперь мой вид наложения камеры меняет ориентацию влево и вправо в iPhone 3GS, но не совсем четко работает в iPhone4. В ios5, если я запускаю камеру с видом наложения в ландшафтном режиме (вправо / влево), он запускается отлично, но, если я меняю ориентацию на (Справа -> Влево / Влево -> вправо), вид наложения не меняет размер кадра UIView (CameraOverlayView), размеры кадра UIButton меняются. Как я могу это исправить? Пожалуйста, помогите мне решить эту проблему. Я надеюсь, что вы, мои друзья, решите мою проблему. Заранее спасибо. Здесь я приложил свой код, который я использовал.

  UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];

if(orientation == UIDeviceOrientationLandscapeLeft)
{
    CGAffineTransform transform = self.view.transform;
    transform = CGAffineTransformRotate(transform, (M_PI / 2.0));
    imgpicker.cameraOverlayView.transform = transform;
    NSLog(@"Orientation Landscape Left");
} 
else if(orientation == UIDeviceOrientationLandscapeRight)
{
    imgpicker.cameraOverlayView.transform = CGAffineTransformRotate(CGAffineTransformIdentity, 117.81);
    NSLog(@"Orientation Landscape Right");
}

Этот код хорошо работает в iPhone # GS (ios4), но плохо работает в iPhone4 (ios5). Может кто-нибудь помочь мне решить эту проблему?

1 Ответ

2 голосов
/ 19 января 2012

Спасибо, друзья мои.Я решил эту проблему самостоятельно.Я просто установил границы для UIView, чтобы он охватывал полный обзор Camera OverlayView, а также я пробовал приведенный выше код, который я упомянул в своем вопросе.

     cameraview.bounds = CGRectMake(0.0, 0.0, 480.0f, 320.0f); 

И поэтому я проверил этот код в начале запуска камеры,

UIInterfaceOrientation orientation= [[UIApplication sharedApplication] statusBarOrientation];
    if (orientation == UIInterfaceOrientationLandscapeLeft) 
    {
        imgpicker.cameraOverlayView.transform = CGAffineTransformRotate(CGAffineTransformIdentity,117.81);
    }
    else if (orientation == UIInterfaceOrientationLandscapeRight)
    {        
        CGAffineTransform transform = self.view.transform;
        transform = CGAffineTransformRotate(transform, (M_PI/2.0));
        imgpicker.cameraOverlayView.transform = transform;
    } 

После этого я также проверил это условие в уведомлении UIDeviceOrientation.Теперь мое приложение работает шарм.Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...