2016-07-21 13 views

Antwort

7

In iOS 10, soweit ich weiß, die Show mehr Option ist neu und wir können es nicht entfernen, aber wir können es nach Bedarf ändern.

Mit dem folgenden Code können Sie das Heute-Widget automatisch vergrößern. Ändern Sie einfach die Tabellen- oder Sammlungsansicht oder was auch immer Sie in Ihrem Projekt verwendet haben.

static CGFloat padding = 25.0; 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    // Do any additional setup after loading the view from its nib. 

    // This will remove extra separators from tableview 
    self.articleTableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero]; 

    // Add the iOS 10 Show More ability 
    [self.extensionContext setWidgetLargestAvailableDisplayMode:NCWidgetDisplayModeExpanded]; 
} 

- (void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode withMaximumSize:(CGSize)maxSize { 
    if (activeDisplayMode == NCWidgetDisplayModeCompact){ 
     // Changed to compact mode 
     self.preferredContentSize = maxSize; 
    } 
    else{ 
     // Changed to expanded mode 
     self.preferredContentSize = CGSizeMake(self.articleTableView.contentSize.width, self.articleTableView.contentSize.height + padding); 
    } 
} 
+0

Ich habe dies als Referenz verwendet -> https://github.com/sighmon/NI-ipad/blob/master/New%20Internationalist%20Magazine%20Australia%20Extension/TodayViewController.m – Moxarth

+0

Es ist möglich, die "Show" zu entfernen Mehr 'Taste ... siehe unten. – MobileVet

2
-[NCWidgetProviding widgetActiveDisplayModeDidChange:withMaximumSize:] 

ist wahrscheinlich das, was Sie suchen, würde ich this

9

In viewDidLoad verweisen Sie auf den größten verfügbaren Anzeigemodus einstellen können.

[self.extensionContext setWidgetLargestAvailableDisplayMode:NCWidgetDisplayModeCompact]; 

Dadurch wird die Schaltfläche "Mehr/Weniger anzeigen" zwar entfernt, aber möglicherweise nicht so, wie Sie möchten. Die maximal zulässige Größe für die kompakte Ansicht ist ziemlich klein.

können Sie implementieren:

-(void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode withMaximumSize:(CGSize)maxSize

Ihre preferredContentSize zu aktualisieren. Der Parameter maxSize ist die maximal zulässige Größe für die activeDisplayMode.

+0

Dank Jervin - Das ist für mich funktioniert, aber meine eigentliche Notwendigkeit ist, dass - ich will nicht anzeigen mehr/weniger Taste in Expanded-Modus. Gibt es eine Möglichkeit, die Schaltfläche im erweiterten Modus zu verbergen. –

+0

Der Schnelltest, den ich ausgeführt habe, hat die Schaltfläche versteckt, als ich den AvailableDisplayMode auf 'NCWidgetDisplayModeCompact' setzte – jervine10

+0

Irgendein Glück? Es muss möglich sein, da ich Apps auf meinem iPhone mit erweitertem Modus standardmäßig ohne Show weniger/mehr Button –

1

Leider kann man nicht verstecken und sollte den

widgetActiveDisplayModeDidChange:withMaximumSize: 

Widgets entsprechen, die nicht diese Kontrolle nicht zeigen, wurden bauen nicht für iOS10

0

ich die Original-Beitrag wissen, erwähnt unter Verwendung von Objective-c aber für den Fall, jemand braucht die schnelle Antwort, hier ist es

override func viewDidLoad() 
{ 
    super.viewDidLoad() 
    self.extensionContext?.widgetLargestAvailableDisplayMode = .compact 
} 

Wenn kompakter gesetzt, nur die App Kompakt-Modus unterstützen dh Show weniger/Show Show Buttons/Funktionalität wird weg sein.

hier einige documentation für weitere Informationen

Verwandte Themen