今天的扩展iOS10显示更多/更少

Con*_*nco 7 objective-c ios ios10 ios10-today-widget

已经更新了今天的iOS 10扩展,实现了委托方法:

-(void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode withMaximumSize:(CGSize)maxSize
{
    if (activeDisplayMode == NCWidgetDisplayModeCompact){
        [UIView animateWithDuration:0.25 animations:^{
            self.preferredContentSize = maxSize;
            [self.view layoutIfNeeded];
        }];
    }
    else if (activeDisplayMode == NCWidgetDisplayModeExpanded){
        newHeight = [self getNewWidgetHeight];
        [UIView animateWithDuration:0.25 animations:^{
            self.preferredContentSize = CGSizeMake(0, newHeight);
            [self.view layoutIfNeeded];
        }];
    }
}
Run Code Online (Sandbox Code Playgroud)

一切正常.但是,如果我将小部件保持在紧凑模式(显示更多选项)并且如果我重新运行/重新打开小部件屏幕,并且如果我点击"显示更多"按钮,即使委托方法被触发也没有任何反应.我应该按2次显示更多/更少,直到小部件开始扩展.我也收到这个错误:No active animation block!

Con*_*nco 14

我发现了这个问题.

我编辑的self.preferredContentSize,即使小部件是在紧凑mode.Just检查每当您更新preferredContentSize,如果widgetActiveDisplayModeNCWidgetDisplayModeExpanded