Altura de la extensión del widget de hoy-iOS10




swift today-extension (2)

Intente establecer self.preferredContentSize en el método viewDidLoad. Aquí está el código completo:

Swift 3

override func viewDidLoad() {

    super.viewDidLoad()

    self.preferredContentSize = CGSize(width:self.view.frame.size.width, height:210)

    if #available(iOSApplicationExtension 10.0, *) {
        self.extensionContext?.widgetLargestAvailableDisplayMode = .expanded
    }
}


 @available(iOS 10.0, *)
    @available(iOSApplicationExtension 10.0, *)
    func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) {
        if activeDisplayMode == .expanded {
            self.preferredContentSize = CGSize(width: self.view.frame.size.width, height: CGFloat(3)*self.tableView.rowHeight)
        }else if activeDisplayMode == .compact{
            self.preferredContentSize = CGSize(width: maxSize.width, height: 110)
        }
    }

Por favor, use su altura para su aplicación .

La esperanza arreglará tu problema.

La altura para el modo de vista de widgets de Hoy no se puede establecer para el modo compacto. No importa el valor que establezca. Establece la altura del widget a un valor predeterminado. El modo expandido funciona a la perfección y el valor se establece y refleja correctamente en el widget. Ya he agregado esta línea en mi método viewDidLoad ().

self.extensionContext?.widgetLargestAvailableDisplayMode = .expanded

Aquí está el código. El valor de maxSize no se puede cambiar también, ya que es una constante.

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

        //self.preferredContentSize = (activeDisplayMode == .compact) ? maxSize : CGSize(width: maxSize.width, height: 300)

        if activeDisplayMode == NCWidgetDisplayMode.compact
        {
             self.preferredContentSize = CGSize(width: maxSize.width, height: 300)
        }
        else
        {
            self.preferredContentSize = CGSize(width: maxSize.width, height: 560)
        }
}

La altura del widget en iOS 10 es exactamente 110 en modo compacto. Puede configurarse a la altura que desee en el modo expandido, pero en el modo compacto siempre será 110 y no se puede sobrescribir.





ios10-today-widget