Xcode Objective C:手势后在工具栏中锁定风景
Posted
技术标签:
【中文标题】Xcode Objective C:手势后在工具栏中锁定风景【英文标题】:Xcode Objective C: Locking Landscape in a Toolbar after a gesture 【发布时间】:2018-06-29 16:05:22 【问题描述】:我想创建一个具有锁定横向方法和解锁的工具栏。我该怎么办? 我也只是希望它在滑动手势后显示。我已经弄清楚了滑动手势,但是在用户按下按钮后无法弄清楚如何锁定横向。 这是一个具有自动旋转功能的应用程序,并希望在用户想要锁定横向之前保留它。我应该在哪里调用或创建此方法?我是否需要创建另一个 UIViewController 并在主控制器中调用它?
【问题讨论】:
【参考方案1】:您可以覆盖 UIViewController 上的 shouldAutorotate 方法。
https://developer.apple.com/documentation/uikit/uiviewcontroller/1621419-shouldautorotate?changes=_3&language=objc
这里是示例 ViewController,带有一个按钮来锁定/解锁旋转。
@interface ViewController ()
bool rotationLocked;
@property (weak, nonatomic) IBOutlet UIButton *lockButton;
@end
@implementation ViewController
- (void)viewDidLoad
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
- (void)didReceiveMemoryWarning
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
- (IBAction)togleRotationLock:(id)sender
rotationLocked = !rotationLocked;
if (rotationLocked)
[_lockButton setTitle:@"Ulock Rotation" forState:UIControlStateNormal];
else
[_lockButton setTitle:@"Lock Rotation" forState:UIControlStateNormal];
- (bool)shouldAutorotate
return !rotationLocked;
@end
此外,如果您需要设置特定的方向,您可以覆盖supportedInterfaceOrientations。
https://developer.apple.com/documentation/uikit/uiviewcontroller/1621435-supportedinterfaceorientations?changes=_3&language=objc
【讨论】:
嗨!快速提问。这只会锁定容器应用程序,但设备呢?我怎样才能同时锁定设备方向,以便在我拉快速设置或下拉通知时它不会崩溃?以上是关于Xcode Objective C:手势后在工具栏中锁定风景的主要内容,如果未能解决你的问题,请参考以下文章
Objective-C 是不是有任何基于非 Xcode 的命令行单元测试工具?
Objective-C 新手,在 Xcode 包中找不到 Foundation 工具