UIScrollView Custom View проблема с вращением - PullRequest
0 голосов
/ 31 мая 2010

У меня есть ScrollView с пользовательским представлением. Теперь у меня проблема с вращением, после поворота вид имеет неправильный кадр / размер.

Как я могу вызвать CustomView после поворота для изменения положения и изменения размера фрейма и содержимого?!

- (void)setupPage
{
    NSUInteger nimages = 0;
    CGFloat cx = 0;
    for (; ; nimages++) {
        if (nimages == list.count) {
            break;
        }

        CustomStepView *stepView = [[CustomStepView alloc] initWithFrame:CGRectZero];
        stepView.tag = nimages;
        if([[UIDevice currentDevice] orientation] == UIDeviceOrientationPortrait || [[UIDevice currentDevice] orientation] == UIDeviceOrientationPortraitUpsideDown) 
        {

            stepView.frame = CGRectMake(cx, 0.0 , 768.0f, 926.0f);
            cx += 768.0;
        }
        else
        {
            stepView.frame = CGRectMake(cx, 0.0 , 1024.0f, 670.0f);
            cx += 1024.0;
        }

        [scrollView addSubview:stepView];
        [stepView release];

    }

    self.pageControl.numberOfPages = nimages;

}

1 Ответ

0 голосов
/ 04 декабря 2010

Судя по всему, у вас есть много подпредставлений (пользовательских представлений) в ScrollView.

Прежде всего, никогда не пытайтесь определить ориентацию с помощью UIDevice, это не рекомендуется Apple. Для обработки поворотов вам была предоставлена ​​функция «shouldAutorotateToInterfaceOrientation»

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

Это может выглядеть примерно так:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
   if(interfaceOrientation ==  UIInterfaceOrientationPortrait)
   {
     for(UIView *asubview in scrollView.subviews)
     {
        asubview.frame = "NEW FRAME";    
     }
   }
   else
   {
       asubview.frame = "NEW FRAME";
   } 
}

Надеюсь, это поможет вам ... хотя я знаю, что об этом давно спрашивали :-) Приветствия

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