Xcode 8 бета 6, tvOS Beta 6оживляющий подслой при изменении фокуса
У меня есть приложение tvOS, где я хочу, чтобы оживить фон элемента управления, когда он получает или теряет фокус. Я установил элемент управления для «Настраиваемого» фокуса и реализовал didUpdateFocusInContext:withAnimationCoordinator:
на элементе управления. Вот код:
-(void)didUpdateFocusInContext:(UIFocusUpdateContext *)context
withAnimationCoordinator:(UIFocusAnimationCoordinator *)coordinator {
// Create the layer if we don't have it.
if (!self->_focusLayer) {
// ... Create a new CALayer and store it in _focusLayer
}
// Animate in or out.
if (context.nextFocusedView == self) {
if (! self->_focusLayer.superlayer) {
STLog(self, @"Adding focus");
self->_focusLayer.opacity = 0.0f;
[self.layer addSublayer:self->_focusLayer];
[coordinator addCoordinatedAnimations:^{
self->_focusLayer.opacity = 1.0f;
}
completion:NULL];
}
} else {
if (self->_focusLayer.superlayer) {
STLog(self, @"Removing focus");
[coordinator addCoordinatedAnimations:^{
self->_focusLayer.opacity = 0.0f;
}
completion:^{
[self->_focusLayer removeFromSuperlayer];
}];
}
}
}
Все работает, кроме анимации непрозрачности подслоя. Я искал сеть, и все приведенные мной примеры указывают на то, что это должно сработать. Я также пытался переключиться на использование CABasicAnimation
без везения.
Кто-нибудь знает, почему это не работает?
Спасибо. Я займусь этим. – drekka