Сегодняшнее расширение iOS10 Показать больше / меньше

Обновил ли сегодняшнее расширение для 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];
        }];
    }
}

все отлично работает Но если я оставлю виджет в компактном режиме (с доступной опцией show more), и если я перезапущу / открою экран виджета, и если я нажму на кнопку Show More, ничего не произойдет, даже если метод делегата запущен. Я должен нажать 2 раза показать больше / меньше, пока виджет не начнет расширяться. Я также получаю эту ошибку:No active animation block!

2 ответа

Решение

Я нашел проблему.

Я редактировал self.preferredContentSize даже если виджет был в компактном режиме. Проверяйте каждый раз при обновлении preferredContentSize если widgetActiveDisplayMode является NCWidgetDisplayModeExpanded

У меня возникла та же проблема, а затем, проверяя раскадровку, я понял, что параметр "Предпочитаемый пользователем явный размер" включен.

введите описание изображения здесь

Отключение этой опции работало для меня.

Другие вопросы по тегам