Today's extension iOS10 Show More/Less

半城伤御伤魂 提交于 2019-12-13 12:06:19

问题


Had updated the today's extension for iOS 10 implement the delegate method:

-(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];
        }];
    }
}

everything work fine. But if I leave the widget in compact mode (with show more option available) and if i rerun/reopen the widget screen and if i tapped on Show More button nothing happens even if the delegate method is triggered. I should press 2 time show more/less until widget starts expanding. I also receive this error:No active animation block!


回答1:


I found the issue.

I had edited the self.preferredContentSize even if the widget was in the compact mode.Just check every time when you update the preferredContentSize if widgetActiveDisplayMode is NCWidgetDisplayModeExpanded




回答2:


I was having the same issue and then checking out the storyboard I realized that the setting "User Preferred Explicit Size" was enabled.

Disabling that option worked for me.



来源:https://stackoverflow.com/questions/40233594/todays-extension-ios10-show-more-less

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!