Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не поворачивается subview 
:(
    Опции темы
dvpt
Дата 29.11.2013, 02:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 15.7.2007

Репутация: нет
Всего: нет



Не понятная ситуация. В настройках задана поддержка всех ориентаций. Кручу главный экран, все поворачивается правильно. Если из главного экрана вызвать subview в портретной ориентации. Subview вызывается в также в портретной ориентации и его можно вращать. Если вызвать из главного экрана subview в альбомной ориентации, то subview вызывается все равно в портретной ориетации???
PM MAIL   Вверх
Bitter
Дата 29.11.2013, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: 10
Всего: 27



во-первых что в вашем понимании subview, во-вторых как вы его вызываете и в-третьих какая ось?
PM MAIL ICQ Skype   Вверх
dvpt
Дата 29.11.2013, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 15.7.2007

Репутация: нет
Всего: нет



subview - это следующее представление после главного экрана
iOS 6
вызываю как обычно
Код

- (IBAction)buttonClick:(id)sender {
    SubViewController *subNew = [[SubViewController alloc] initWithNibName:@"SubViewController" bundle:nil];
    [self.view addSubview:subNew.view];
}

PM MAIL   Вверх
dvpt
Дата 29.11.2013, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 15.7.2007

Репутация: нет
Всего: нет



пришлось пойти сложным путем
Код

- (void)viewDidLoad
{
    UIInterfaceOrientation orientation = [[UIDevice currentDevice] orientation];
    if (orientation == UIInterfaceOrientationLandscapeLeft){
        [self.view setFrame:CGRectMake(0, 0, self.view.bounds.size.height, self.view.bounds.size.width)];
    }
    else if (orientation == UIInterfaceOrientationLandscapeRight){
        [self.view setFrame:CGRectMake(0, 0, self.view.bounds.size.height, self.view.bounds.size.width)];
    }
    
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    
}

незнаю только правильно ли это , но работает
PM MAIL   Вверх
Bitter
Дата 29.11.2013, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: 10
Всего: 27



ну прежде всего это не сабвью, как вы его назвали, а вьюКонтроллер. Сабвью не имеет никакого отношения к ориентации. Кроме того, то что вы написали это бред, в первом и во втором случае
В первом случае: новый контроллер добавляется двумя способами. Либо с помощью метода [self presentViewController:subNew animation:YES], предварительно указав настройки появления. Второй способ - использовать UINavigationController, и при его использовании писать [self.navigationController pushViewController:subNew animation:YES].

Во втором случае ваш код является бредом так как задавая вручную размеры вьюхи, вы не поворачиваете ее, а просто меняете ширину и высоту. Для поворота ваш контроллер должен переопределить метод shouldAutorotateToInterfaceOrienation и вернуть в нем YES или NO в зависимости от нужной ориентации

Это сообщение отредактировал(а) Bitter - 29.11.2013, 12:17
PM MAIL ICQ Skype   Вверх
dvpt
Дата 29.11.2013, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 15.7.2007

Репутация: нет
Всего: нет



в iOS 6 shouldAutorotateToInterfaceOrienation не работает
PM MAIL   Вверх
Bitter
Дата 29.11.2013, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: 10
Всего: 27



да, значит используйте, как вы уже сами поняли supportedInterfaceOrientations. А метод shouldAutorotateToInterfaceOrienation будет работать если вы поставите в настройках проекта Deployment Target 5.1
PM MAIL ICQ Skype   Вверх
dvpt
Дата 29.11.2013, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 15.7.2007

Репутация: нет
Всего: нет



Правильно работает только вот такой код
Код

- (NSUInteger)supportedInterfaceOrientations // iOS 6 autorotation fix
{
    NSLog(@"supportedInterfaceOrientations");

    UIInterfaceOrientation orientation = [[UIDevice currentDevice] orientation];
    if (orientation == UIInterfaceOrientationLandscapeLeft){
        [self.view setFrame:CGRectMake(0, 0, self.view.bounds.size.height, self.view.bounds.size.width)];
    }
    else if (orientation == UIInterfaceOrientationLandscapeRight){
        [self.view setFrame:CGRectMake(0, 0, self.view.bounds.size.height, self.view.bounds.size.width)];
    }
    
    return UIInterfaceOrientationMaskAll;
}


PM MAIL   Вверх
Bitter
Дата 30.11.2013, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: 10
Всего: 27



Это не првильный код, нельзя устанавливать размеры вьюхи вручную, так как это не поворот. Если на первый взгляд вам кажется что это работает, то это не значит, что это работает правильно. Читайте мануалы как работать с вьюконтроллерами. Но если вам нравится писать как индус, можете так и делать.
PM MAIL ICQ Skype   Вверх
dvpt
Дата 4.12.2013, 06:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 15.7.2007

Репутация: нет
Всего: нет



а хамить то зачем

Это сообщение отредактировал(а) dvpt - 4.12.2013, 07:53
PM MAIL   Вверх
Bitter
Дата 4.12.2013, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: 10
Всего: 27



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

Это сообщение отредактировал(а) Bitter - 4.12.2013, 11:22
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | iOS | Следующая тема »


 




[ Время генерации скрипта: 0.0441 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.