Ich baue ein iOS Today-Widget und beim Testen für iOS 10 sehe ich oben rechts im Widget-Header eine Schaltfläche "Mehr anzeigen"/"Weniger anzeigen" . Wie kann ich diesen Knopf entfernen? Ich benutze Objective-C.Schaltfläche "Mehr anzeigen" von Today Widget in iOS10 ausblenden
Antwort
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);
}
}
-[NCWidgetProviding widgetActiveDisplayModeDidChange:withMaximumSize:]
ist wahrscheinlich das, was Sie suchen, würde ich this
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
.
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. –
Der Schnelltest, den ich ausgeführt habe, hat die Schaltfläche versteckt, als ich den AvailableDisplayMode auf 'NCWidgetDisplayModeCompact' setzte – jervine10
Irgendein Glück? Es muss möglich sein, da ich Apps auf meinem iPhone mit erweitertem Modus standardmäßig ohne Show weniger/mehr Button –
Leider kann man nicht verstecken und sollte den
widgetActiveDisplayModeDidChange:withMaximumSize:
Widgets entsprechen, die nicht diese Kontrolle nicht zeigen, wurden bauen nicht für iOS10
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
Ich habe dies als Referenz verwendet -> https://github.com/sighmon/NI-ipad/blob/master/New%20Internationalist%20Magazine%20Australia%20Extension/TodayViewController.m – Moxarth
Es ist möglich, die "Show" zu entfernen Mehr 'Taste ... siehe unten. – MobileVet