Относительная сенсорная позиция Apple TVOS к абсолютной позиции

Когда мы получаем прикосновения, эти прикосновения начинаются в центре сенсорной панели (x 960 x 540), даже если мы нажимаем на правую нижнюю сторону сенсорной панели.

Как мы можем занять абсолютную позицию нажатия на удаленной сенсорной панели - где верхняя левая точка равна 0 0, нижняя правая точка равна 1920 x 1080? Теперь я использую этот код, для получения прикосновений

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

      for(UITouch *touch in touches) {
            CGPoint p = [touch locationInView: view];
            //....            
      }  
}

1 ответ

Я думаю, что навигационная концепция TVOS отличается. Неудобно пытаться слепо поразить элемент пользовательского интерфейса на пульте дистанционного управления.

Разве вы не можете использовать что-то подобное, чтобы определить, что пользователь хочет сделать?

var touchPositionX: CGFloat = 0.0
var touchPositionY: CGFloat = 0.0
override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
    for touch in touches {
        let location = touch.locationInNode(self)

        if location.x < touchPositionX && location.y < touchPositionY {
            // TopRight Corner
        }
        // ...
    }
}

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
    for touch in touches {
        // No repositioning
        touchPositionX = touch.locationInNode(self).x
        touchPositionY = touch.locationInNode(self).y
    }
}
Другие вопросы по тегам