Rus*_*her 8 orientation-changes apple-tv tvos siri-remote
我一直在寻找一种方法来检查Siri Remote的当前方向或注册Siri Remote方向更改,但我还没有找到任何东西.是否可以这样做(不需要解释原始重力数据)?
我已经发现了如何与"microGamepad""allowsRotation"禁用自动方向变化.哪个很酷!
小智 1
我也没有看到 API,但是正如您提到的,您可以轮询重力数据,我只是想在此处发布该代码,以防有人发现它有用。您可以根据自己的需要对此进行修改,例如如果您想要更改的回调,则检测最后的方向并将其与当前的进行比较。
//**************************************************************
// Update loop portion to UIViewController
//**************************************************************
@property (strong) CADisplayLink *updateLoopTimer;
self.updateLoopTimer = [CADisplayLink displayLinkWithTarget:self selector:@selector(updateRefreshRate:)];
[self.updateLoopTimer addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
-(void)updateRefreshRate:(CADisplayLink *)displayLink
{
CFTimeInterval deltaTime = displayLink.duration * displayLink.frameInterval;
[self update:(float)deltaTime];
}
//******************************************************
// Update loop
//******************************************************
-(void)update:(float)dt
{
#ifdef TV
//***************************************
// Detect button presses
//***************************************
//self.gameControler = [[GCController controllers] firstObject];
if( self.gameController != nil )
{
GCMicroGamepad* microPad = self.gameController.microGamepad;
if ( microPad != nil )
{
GCMotion *motion = self.gameController.motion;
GCControllerDirectionPad *dpad = microPad.dpad;
if( motion != nil )
{
GCAcceleration accelVector = motion.gravity;
if( fabs(accelVector.x) > fabs(accelVector.y) )
{
NSLog(@"Sideways");
}
else
{
NSLog(@"Upright");
}
}
}
}
#endif
}
Run Code Online (Sandbox Code Playgroud)