iOS10でウィジェットのデザインが崩れる問題の対処法


iOS10のウィジェットがそのままでは高さ固定になって崩れてしまう。

対処法
ウィジェットを広げるボタンを追加する

以下実装

swift

viewDidLoadとかに

self.extensionContext?.widgetLargestAvailableDisplayMode = NCWidgetDisplayMode.Expanded
func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMÓode, withMaximumSize maxSize: CGSize) {
    if (activeDisplayMode == NCWidgetDisplayMode.compact) {
        self.preferredContentSize = maxSize;
    }
    else {
        self.preferredContentSize = CGSize(width: 0, height: 200);
    }
}

objective-c

viewDidLoadとかに

[self.extensionContext setWidgetLargestAvailableDisplayMode:NCWidgetDisplayModeExpanded];
- (void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode
                         withMaximumSize:-(CGSize)maxSize
{
    if (activeDisplayMode == NCWidgetDisplayModeCompact) {
        self.preferredContentSize = maxSize;
    }
    else {
        self.preferredContentSize = CGSizeMake(0, 200);
    }
}

これで広げてデザイン崩れを防げます