2016-11-17 8 views
14

오늘의 위젯보기 모드의 높이를 소형 모드로 설정할 수 없습니다. 상관없이 내가 설정 한 가치. 위젯의 높이를 기본값으로 설정합니다. 확장 모드가 완벽하게 작동하고 값이 올바르게 설정되어 위젯에 반영됩니다. 이 줄은 이미 viewDidLoad() 메서드에 추가했습니다.투데이 위젯 확장 높이 - iOS10

self.extensionContext?.widgetLargestAvailableDisplayMode = .expanded 

여기에 코드가 있습니다. maxSize의 값도 상수로 변경할 수 없습니다.

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) 
     } 
} 
+0

은 소형 모드에서 위젯의 최소 높이입니다. –

+0

@ ConstantinSaulenco 감사합니다.하지만 어떻게이 값을 변경할 수 있습니까? –

+1

컴팩트 모드에서 값을 변경할 방법이 없습니다 –

답변

15

iOS 10의 위젯 높이는 소형 ​​모드에서 정확히 110입니다. 확장 모드에서 원하는 높이로 설정할 수 있지만 컴팩트 모드에서는 항상 110이며 덮어 쓸 수 없습니다.

+6

iOS 10+에서 위젯의 높이는 시스템 텍스트 크기에 따라 가변적입니다. 110은 기본/중간 텍스트 크기의 높이이지만 설정 응용 프로그램에서 시스템 텍스트 크기를 줄이거 나 늘리면 110보다 작거나 클 수 있습니다. –

+1

이 답변은 실제로 모든 주를 포함하지는 않습니다. @GregG 코멘트와 병합해야합니다 :) – ridvankucuk

11

viewDidLoad 메서드에서 self.preferredContentSize를 설정해보십시오. 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) 
     } 
    } 

스위프트 응용 프로그램에 대한 귀하의 높이를 사용하십시오 : 여기에 전체 코드입니다. 호프가 문제를 해결할 것입니다.