настраиваемый вид предупреждений не вращается в направлении вращения устройства - PullRequest
1 голос
/ 26 ноября 2010

Я реализовал настраиваемое представление оповещений из

http://iphonedevelopment.blogspot.com/2010/05/custom-alert-views.html

, но я хочу, чтобы это настраиваемое представление оповещений вращалось при изменении ориентации устройства.Когда я запускаю это приложение в первый раз в книжной ориентации симулятора iphone, ориентация настраиваемого представления оповещения происходит в горизонтальной ориентации, но когда я поворачиваю устройство в левую ориентацию, ориентация настраиваемого представления оповещения осуществляется в альбомной ориентации.Повернув устройство во многих отношениях, я обнаружил, что пользовательская ориентация оповещения соответствует позиции кнопки «Домой».

Я реализовал несколько следующих методов:

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

}

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

}

-(void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{
 NSLog(@"bbb");

}

-(void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{
 NSLog(@"bbb");

}

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

}

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

}

но никто не был вызван ... Может кто-нибудь помочь мне понять, почему настраиваемое представление предупреждений не вращается так, как я хочу?

ОБНОВЛЕНИЕ: я реализовал метод viewWillAppear, как этот

-(void)viewWillAppear:(BOOL)animated {

UIInterfaceOrientation toOrientation = self.interfaceOrientation;
if(toOrientation == UIInterfaceOrientationPortrait){
    CGAffineTransform affine = CGAffineTransformMakeRotation (M_PI * 180 / 180.0f);
    NSLog(@"vwa : portrait upside down");

    [self.alertView setTransform:affine];
    [self.backgroundView setTransform:affine];

    //[self.view setTransform:affine];
    self.view.center = CGPointMake(160, 240);
    NSLog(@"affine : %f", affine);

}else if(toOrientation == UIInterfaceOrientationPortraitUpsideDown){
    CGAffineTransform affine = CGAffineTransformMakeRotation (0.0);

    NSLog(@"vwa : Portrait ");

    [self.alertView setTransform:affine];
    [self.backgroundView setTransform:affine];
    self.view.center = CGPointMake(160, 240);
    NSLog(@"affine : %f", affine);
}else if(toOrientation == UIInterfaceOrientationLandscapeLeft){
    CGAffineTransform affine = CGAffineTransformMakeRotation (M_PI * 270 / 180.0f);

    [self.alertView setTransform:affine];
    [self.backgroundView setTransform:affine];
    self.view.center = CGPointMake(160, 240);

    NSLog(@"vwa : landscpae left");

    NSLog(@"affine : %f", affine);
}else{
    CGAffineTransform affine = CGAffineTransformMakeRotation ( M_PI * 90 / 180.0f);
    [self.alertView setTransform:affine];
    [self.backgroundView setTransform:affine];
    self.view.center = CGPointMake(160, 240);

    NSLog(@"vwa : landscape right");
    NSLog(@"affine : %f", affine);
}

}

но условие только что выполнилось при первом запуске приложения, после этого нет условия и вызывается оператор, даже если я поворачиваю устройство много раз

Ответы [ 2 ]

1 голос
/ 26 ноября 2010

Это СДЕЛАНО ... см. Об ориентации iPhone , чтобы найти ответ:)

0 голосов
/ 26 ноября 2010

UIView не может принять сообщения делегата UIViewController. Поэтому вы должны зарегистрироваться в качестве наблюдателя, чтобы получать уведомление UIDeviceOrientationDidChangeNotification .

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