2016-09-22 4 views
0

내 문제는 내 전체 확장 프로그램을 표시하는 방법을 알아낼 수 없다는 것입니다. 네 개의 행을 표시해야하지만 항상이 같은 차단 : 나는 어떤 스레드를 읽고 preferredContentSize을 시도했지만 작동 하나하지 않습니다 오늘 확장 기능 AutoLayout이 작동하지 않음

Cut off Today extension

:

func widgetPerformUpdate(completionHandler: (@escaping (NCUpdateResult) -> Void)) { 
    self.preferredContentSize = CGSize(width: 0, height: 400)   
    completionHandler(NCUpdateResult.newData) 
} 

그것은 좌절 무엇인가가 나는 shouldn 자동 레이아웃 제약 조건을 설정했기 때문에 preferredContentSize가 필요합니다.

autolayout constraints

당신은이 현재 999 우선 순위로 설정되어 있지만 너무 1000 그것을 시도했기 때문에 바닥 제약 점선입니다 알 수 있습니다.

어떻게 수정합니까? 도와주세요!!

답변

1

나는 당신이 말하는 것에 대해 알고 있습니다. 나는 똑같은 문제가 있습니다.

위젯은 기기의 특정 높이보다 높을 수 없습니다. 그러나 확장 모드를 사용하면 위젯의 소형보기와 확장보기 사이를 전환 할 수 있습니다.

너무 큰 위젯에서 오늘보기를 정리해야합니다.

이 문서가 당신을 도울 것입니다 : https://forums.developer.apple.com/thread/48930

중요한 부분은 다음과 같습니다

self.extensionContext?.widgetLargestAvailableDisplayMode = .expanded 

func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) { 
    if (activeDisplayMode == .compact) { 
     self.preferredContentSize = maxSize; 
    } 
    else { 
     self.preferredContentSize = CGSize(width: 359, height: 200) 
    } 
} 
+0

덕분에,이 일했다. 그것은 "더보기"/ "덜보기"를 사용하도록 나를 강요하지만 그 일을 할 수 있습니다. –

+0

저도 마찬가지지만, 더/덜 알기를 사용해야합니다.하지만 왜 그렇게하지 않습니까? 어쨌든 의미가 있습니다. – maddy

+0

이 문제가 실제로 해결됩니까? 정적 높이 200을 만듭니다. 자동 레이아웃을 사용하여 자동으로 조정되도록하지 않으시겠습니까? http://stackoverflow.com/questions/41524154/dynamic-height-using-auto-layout-in-today-extension에 관한 질문이 있습니다. – netigger

관련 문제