Today Widget Extension 动画在 iOS 10 上不起作用
Posted
技术标签:
【中文标题】Today Widget Extension 动画在 iOS 10 上不起作用【英文标题】:Today Widget Extension animation doesn't work on iOS 10 【发布时间】:2016-11-02 01:25:17 【问题描述】:我正在尝试在今天的小部件展开时实现 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 像素。所以在情节提要中,我将所有“额外”信息放在 100 像素以下。这是正确的方法吗?或者,还有更好的方法。我最终会将它带到 iOS 8 和 iOS 9,但首先我想先让它工作。
【问题讨论】:
【参考方案1】:在 iOS 10 中,您可以在更改小部件的显示模式时更改 expandingLabel
的 alpha。即当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)
)
【讨论】:
以上是关于Today Widget Extension 动画在 iOS 10 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章
iOS开发------Widget(Today Extension)插件化开发
Today Widget Extension 中经常出现“无法加载”
Dose NSTimer 可以在 Today Extension (Widget) 中使用吗?