Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Today widget in iOS 10 is not expanding

I'm trying to solve an issue with my today widget. It's not expanding on iOS10 after pressing "Show more" button. It's size keeps the same all the time.

Here is the code for TodayViewController.swift

import UIKit
import NotificationCenter

class TodayViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        extensionContext?.widgetLargestAvailableDisplayMode = .expanded
    }
}

extension TodayViewController: NCWidgetProviding {

    func widgetActiveDisplayModeDidChange(activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) {
        if activeDisplayMode == .expanded {
            preferredContentSize = CGSize(width: 0, height: 280)
        } else {
            preferredContentSize = maxSize
        }
    }
}

Any hints please?

like image 377
Martin Pilch Avatar asked Jan 25 '17 17:01

Martin Pilch


1 Answers

Assuming that you are coding using Swift 3 (or later), please note that

widgetActiveDisplayModeDidChange method signature is:

optional func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize)

So, it should be:

func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) {
    if activeDisplayMode == .expanded {
        preferredContentSize = CGSize(width: 0, height: 280)
    } else {
        preferredContentSize = maxSize
    }
}

You could also add a breakpoint to your current method and check whether it's reachable or not.

like image 124
Ahmad F Avatar answered Sep 21 '22 06:09

Ahmad F