2016-11-02 15 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) 
    }) 
} 
関連する問題