#ios #autorotate
#iOS #автоматическое вращение #автозапуск
Вопрос:
Я развиваюсь в Objective-C
Я использую следующий код, чтобы заблокировать screen orientation
и установить его в UIInterfaceOrientationPortrait
.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
- (BOOL)shouldAutorotate
{
return NO;
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
Но я хочу заблокировать screen rotate
динамику с помощью UIButton
. Например , если текущее shouldAutorotate
равно No
. Оно изменится на YES
, когда я нажму Button
. Как следующий псевдокод.
- (IBAction) lock_Auto_rotate:(id)sender {
if(Autorotate == YES){
Autorotate = NO;
}else{
Autorotate = YES;
}
}
Как управлять auto rotate
с помощью Button
?
Заранее благодарю.
Ответ №1:
Вы на правильном пути, просто нужно выполнить некоторые манипуляции. Взгляните на приведенный ниже фрагмент кода.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if (isRotateOn)
{
return (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
else
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
}
- (BOOL)shouldAutorotate
{
if (isRotateOn)
{
return YES;
}
else
{
return NO;
}
}
- (NSUInteger)supportedInterfaceOrientations
{
if (isRotateOn)
{
return UIInterfaceOrientationMaskAll;
}
else
{
return UIInterfaceOrientationMaskPortrait;
}
}
-(IBAction)btnRotateOnOffAction:(id)sender
{
if ([self.btnRotateOnOff.titleLabel.text isEqualToString:@"On"])
{
isRotateOn =YES;
[self.btnRotateOnOff setTitle:@"Off" forState:UIControlStateNormal];
}
else
{
isRotateOn = NO;
[self.btnRotateOnOff setTitle:@"On" forState:UIControlStateNormal];
}
}
Let me know if you have any queries.