2016-11-02 2 views
0

Я пытаюсь реализовать альфа-изменение, когда виджет сегодня расширяется, поэтому данные появляются, но я не могу заставить его анимировать вообще. Я пытаюсь это сделать на симуляторе. Вместо этого он просто появляется без анимации.Сегодня анимация расширения виджета не работает на iOS 10

-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator{ 

    [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator]; 

    [coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context){ 

     (self.expandingLabel.alpha == 1) ? (self.expandingLabel.alpha = 0) : (self.expandingLabel.alpha = 1); 

    } completion:Nil]; 


} 

Не могу видеть, что я делаю неправильно. Будет ли этот метод работать в iOS 8/9?

Еще одна проблема, которую я испытываю, заключается в том, что я хотел бы показывать дополнительные данные только при расширении виджета. Способ, которым я занимаюсь этим, заключается в том, что на iOS 10 я определил, что минимальная высота, которую я могу иметь для виджета при закрытии, составляет примерно 100 пикселей. Поэтому в раскадровке я помещаю всю «дополнительную» информацию ниже 100 пикселей. Правильно ли это? Или есть лучший способ. Я в конечном итоге перенесу это на iOS 8 и iOS 9, но сначала я хотел бы получить эту работу в первую очередь.

ответ

1

В iOS 10 вы можете изменить альфа expandingLabel всякий раз, когда изменяется режим отображения виджета. т.е. когда вызывается widgetActiveDisplayModeDidChange.

func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) 
{ 
    if activeDisplayMode == .expanded 
    { 
     preferredContentSize = CGSize(width: 0.0, height: 200.0) //Size of the widget you want to show in expanded mode 
    } 
    else 
    { 
     preferredContentSize = maxSize 
    } 
    UIView.animate(withDuration: 0.5, animations: { 
     (self.expandingLabel.alpha == 1) ? (self.expandingLabel.alpha = 0) : (self.expandingLabel.alpha = 1) 
    }) 
} 
Смежные вопросы