我试图在今天的小部件扩展时尝试实现alpha更改,以便数据显示但我似乎无法让它生成动画。我在模拟器上尝试这个。相反,它只显示没有动画。
-(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像素。因此,在故事板中,我将所有&#34;额外的&#34;信息低于100像素。这是正确的方法吗?或者,还有更好的方法。我最终会把它带到iOS 8和iOS 9,但首先我想先让它工作。
答案 0 :(得分: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)
})
}