我有一个viewController类示例FirstView,它有一个子类ex。 secondView。 SecondView是FirstView的子类。现在我想在第二个视图中检查方向吗?
如何识别secondView方向?我检查了以下方法,但它无效。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
当我改变方向时,不会调用任何方法。
有没有办法确定自定义子类的方向?
我该如何解决这个问题?
答案 0 :(得分:0)
[[UIApplication sharedApplication] statusBarOrientation]
会返回当前的设备方向。
答案 1 :(得分:0)
我认为你可以使用UIAccelerometer。您只需要实现UIAccelerometerDelegate。
只是为了使用Accelerometer获取视图的当前方向,您可以使用以下代码:
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{
// Get the current device angle
float x = [acceleration x];
float y = [acceleration y];
float angle = atan2(y, x);
if([acceleration z]>-0.84)
{
if(angle >= -2.25 && angle <= -1) // Current Orientation = Portrait
{
//Do the work
}
else if(angle >= -0.35 && angle < 0.20) //Current Orientation = Landscape Left
{
//Do the work
}
else if(angle >= 0.90 && angle <= 2.00) //Current Orientation = Portrait Upside Down
{
//Do the work
}
else if(angle <= -2.70 || angle >= 2.5) //Current Orientation = Landscape Right
{
//Do the work
}
}
}
如果您需要更多帮助,请与我们联系。
希望这有帮助。
答案 2 :(得分:0)
在你的超级课程中你应该调用它的超级方向方法:
Class A {
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
[super shouldAutorotateToInterfaceOrientation:interfaceOrientation];
}
}
class b inherits class a {
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
NSLog(@"Your stufs");
}
}