iPhone SDK: Ориентация (Среда и представления Портрета)

Использовать подзапрос ...

SELECT
    trip_no,
    MAX(check_call_id)   AS check_call_id
FROM
(
    SELECT
        T.a.value('@trp[1]' , 'CHAR(6)') AS trip_no,
        T.a.value('@ccid[1]', 'INT'    ) AS check_call_id
    FROM
        @recordXml.nodes('/root/que')T(a)
    WHERE
        LEN(T.a.value('@trp[1]','CHAR(6)')) = 6
        AND ISNUMERIC(T.a.value('@trp[1]','CHAR(6)')) = 1
        AND CONVERT(INT, T.a.value('@trp[1]','CHAR(6)')) > 0
)
    AS parsed_xml
GROUP BY
    trip_no
9
задан Chris Hanson 11 January 2009 в 07:35
поделиться

4 ответа

Обратите внимание на функцию shouldAutorotateToInterfaceOrientation: в классе UIViewController. Эта функция возвращает YES, если ориентации поддерживаются вашим UIView. Если вы вернете ДА только в альбомную ориентацию, iPhone автоматически перейдет в эту ориентацию.

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

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationLandscape);
}
9
ответ дан 4 December 2019 в 11:08
поделиться

Вот то, что я делаю, чтобы сделать это:

во-первых, поместите, это определяет наверху Вашего файла, прямо под Вашим #imports:

#define degreesToRadian(x) (M_PI * (x) / 180.0)

затем, в viewWillAppear: метод

[[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO];     
if (self.interfaceOrientation == UIInterfaceOrientationPortrait) {  
    self.view.transform = CGAffineTransformIdentity;
    self.view.transform = CGAffineTransformMakeRotation(degreesToRadian(90));
    self.view.bounds = CGRectMake(0.0, 0.0, 480, 320);
}

если Вы хотите, чтобы это было анимировано, то можно перенести все это в блок анимации, как так:

[UIView beginAnimations:@"View Flip" context:nil];
[UIView setAnimationDuration:1.25];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];

[[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO];     
if (self.interfaceOrientation == UIInterfaceOrientationPortrait) {  
    self.view.transform = CGAffineTransformIdentity;
    self.view.transform = CGAffineTransformMakeRotation(degreesToRadian(90));
    self.view.bounds = CGRectMake(0.0, 0.0, 480, 320);
}
[UIView commitAnimations];

Затем в Вашем контроллере режима портрета можно сделать реверс - проверка, чтобы видеть, если в настоящее время в среде, и если так, поверните его назад к Портрету.

3
ответ дан 4 December 2019 в 11:08
поделиться

Чтобы заставить это работать, я добавил это к rootviewcontroller:

- (void)viewWillAppear:(BOOL)animated {
    [[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait];

}

Это, кажется, работает теперь.

7
ответ дан 4 December 2019 в 11:08
поделиться

Необходимо отредактировать файл Info.plist для добавления ключа UIInterfaceOrientation с соответствующим значением (UIInterfaceOrientationLandscapeRight или UIInterfaceOrientationLandscapeLeft).

0
ответ дан 4 December 2019 в 11:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: