подкласс iphone UIView не инициализируется в соответствии с запросом - PullRequest
0 голосов
/ 27 июня 2010

Я новичок в Objective-C и разработке для iPhone, но пока все шло хорошо, пока я пытался копать глубже (ну, не слишком глубоко).Моя проблема в том, что я не могу инициализировать определенный подкласс UIView с определенными координатами для разных ориентаций.

Вращение работает отлично, но проблема в том, когда приложение инициализируется.Я думал о том, чтобы дать другой макет для другой ориентации.

Мое приложение на самом деле является приложением для iPad с основным UIViewController и тремя подпредставлениями (UIView).давайте вызовем view1, view2 и view3.

Три вида создаются на кончике проекта, а выходы кодируются и подключаются для них.

Кажется, проблема возникает из метода viewDidLoad ... В настоящее время он выглядит так:

-(void)viewDidLoad{

    [super viewDidLoad];
    [view1 removeFromSuperview];
    [view2 removeFromSuperview];
    [view3 removeFromSuperview];

    UIInterfaceOrientation curOrientation = self.Orientation;

    if(curOrientation == UIInterfaceOrientationPortrait)
    {
       view1 = [[XView alloc] initWithFrame:CGRectMake(20,492,728,492)];
       view2 = [[YView alloc] initWithFrame:CGRectMake(384,20,364,472)];
       view3 = [[ZView alloc] initWithFrame:CGRectMake(20,20,364,472)];

       [self.view addSubview:view1];
       [self.view addSubview:view2];
       [self.view addSubview:view3];
    }
    else if(curOrientation == UIInterfaceOrientationLandscapeRight)
    {
      //Different coordinates
    }
    else if(curOrientation == UIInterfaceOrientationLandscapeLeft)
    {
     //Different Coodinates
    }

    }

Моя проблема в том, что представления не получают те же координаты, что и данныев методе viewDidLoad, и они кажутся инициализированными при x = 0, y = 0.Тем не менее, когда я поворачиваю устройство, все работает как шарм, и каждый UIView устанавливается в нужное место для каждой ориентации.По сути, я просто вызываю метод setFrame для каждого UIView.

Я не уверен, что здесь делаю не так .... Мне нужна помощь ...

С уважением

1 Ответ

0 голосов
/ 29 июня 2010

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

В любом случае, было бы полезно увидеть остальную часть вашего класса.Ваш вид будет менять рамку?имеет ли self.view правильные размеры?

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