Neben der Entwicklung von Features und Fehlerbehebungen müssen iOS-Entwickler auch die jährlich im WWDC angekündigten Ereignisse im Auge behalten. Im Zuge der angekündigten bemerkenswerten neuen SDKs müssen iOS-Entwickler einige Änderungen vornehmen, um ihre Apps plattformkonform zu halten.
Nachdem sich Swift zu Version 4 entwickelt hat und Verbesserungen und Änderungen am iOS-SDK selbst vorgenommen werden, müssen Entwickler die Änderungen durchgehen und eine Strategie zur Aktualisierung ihrer Codebasis entwickeln. Alles ohne die vorhandenen Funktionen und Funktionen zu brechen! Auf die Priorisierung Ihres Projekts kommt es an: Was ist das Minimum, das Sie tun müssen, um Ihre App mit iOS 11 kompatibel zu machen? Was ist der einfachste Fall, den Sie Ihrem Projekt-Stakeholder oder Projektmanager machen können??
Wichtige Funktionen stehen an erster Stelle. Als Nächstes werden die Verbesserungen, die iOS 11 bietet, nicht benötigt, von der Optimierung Ihrer Anwendung bis hin zur visuellen Ästhetik, die die Interaktion und Funktionalität Ihrer App noch bereichern wird. Vor diesem Hintergrund führt Sie dieses Tutorial durch die Schritte, die zur Aktualisierung Ihrer App erforderlich sind. Dabei werden die erforderlichen und optionalen Verbesserungen auf pragmatische Weise durchgeführt.
In diesem Artikel erhalten Sie einen Überblick über die Änderungen, die erforderlich sind, um Ihre App für iOS 11 zu aktualisieren, von architektonischen zu visuellen Änderungen sowie Änderungen in der App Store-Veröffentlichung. Darüber hinaus werden in diesem Lernprogramm die Abschnitte beginnend mit den erforderlichen Änderungen und dem erforderlichen Umfang und Aufwand bis hin zu den schönen, aber nicht notwendigen Funktionen organisiert, die Ihre App als Ergebnis von iOS 11 verbessern.
In diesem Tutorial behandeln wir Folgendes:
In diesem Lernprogramm wird vorausgesetzt, dass Sie Kenntnisse in Swift oder Objective-C und Xcode sowie Kenntnisse der wichtigsten iOS-SDKs (z. B. UIKit und Core Foundation) besitzen..
Wie bei jeder Wiederholung von iOS sind die wichtigsten Änderungen normalerweise die architektonischen. Bei iOS 11 ist dies eine Migration auf Swift 4. Daher ist die Aktualisierung der Build-Einstellungen für Xcode 9 die erste Aufgabe, die wir uns ansehen.
Wichtig | Erforderlich
Für diejenigen, die im letzten Jahr von Swift 2 auf 3 migrieren mussten, war dieser Prozess äußerst schmerzhaft und viele Änderungen brachen die bestehende Codebase. Zum Glück ist dies nicht der Fall von Swift 3.2 auf 4, da die meisten Chancen eher als additiv angesehen werden, als abwertend. Daher führt das Xcode 9-Migrationstool auf bewundernswerte Weise den Code auf den neuesten Swift-Code aus.
Darüber hinaus werden Sie im Gegensatz zu früheren Versionen nicht gezwungen sein, das Upgrade auf 4 auf einmal durchzuführen. Das heißt, Xcode-Projekte unterstützen gleichzeitig sowohl Swift 4 als auch Swift 3.2. Dies bedeutet, dass Sie ein Ziel in Ihrem Projekt unter Swift 3.2 und ein anderes in Swift 4 kompilieren können. Mit dem Migrationstool können Sie wissen, welche Klassen und Funktionen erfolgreich migriert wurden , und welche müssen Sie manuell beheben, in Form von Fehlern oder Warnungen.
Die Fehler bedeuten, dass Sie etwas korrigieren müssen, das nicht abwärtskompatibel ist. Viele Warnungen weisen jedoch darauf hin, dass Swift 4 eine neue Möglichkeit hat, etwas zu tun, beispielsweise neue API-Änderungen. Beheben Sie die Fehler und priorisieren Sie die oben genannten Warnungen als separate Aufgabe.
Um auf das Migrationstool zuzugreifen, gehen Sie zu Bearbeiten> Konvertieren> In aktuelle Swift-Syntax in Xcode und folgen Sie den Anweisungen, und wählen Sie die Ziele aus, die Sie zu diesem Zeitpunkt migrieren möchten.
Mit dem Migrationstool erfahren Sie, welche Mindestarbeit erforderlich ist, um Ihre App neu zu kompilieren. Daher sollte es nicht überraschen, dass die empfohlene Methode die schrittweise Migration der App von 3 auf 4 ist, insbesondere In großen Projekten testen und konvertieren Sie Ziel für Ziel. Sie müssen nicht alles auf einmal migrieren, und Sie können den Migrationspfad schrittweise an jedem Ort und bei Bedarf planen.
Wir werden als Nächstes einen kurzen Blick auf die Änderungen in Swift 4 werfen, die nicht unbedingt implementiert werden müssen, aber gut zu wissen sind.
Wichtig | Erforderlich
Eine weitere wichtige Änderung in iOS 11 ist, dass alle Apps im App Store jetzt 64-Bit-Versionen aufweisen müssen, da 32-Bit-Apps nicht mehr unterstützt werden und tatsächlich auch auf Geräten mit iOS 11 nicht funktionieren Es sollte keine Überraschung sein, da Apple die Entwickler schon länger gewarnt hat. Falls Ihre App jedoch noch nicht umgestellt wurde, können Sie den Richtlinien von Apple zum Konvertieren Ihrer App in ein 64-Bit-Binary folgen.
Nicht wichtig | Wahlweise
Neben der obligatorischen Arbeit, die erforderlich ist, damit Ihr Ziel Swift 4-kompatibel wird, haben Sie die Möglichkeit, den vorhandenen Code umzuwandeln, um die neuen Swift-API-Änderungen zu nutzen, die gemäß den folgenden Verbesserungen auf API-Ebene unterteilt sind:
String hat in Swift 4 viel Aufmerksamkeit auf sich gezogen, wobei die bemerkenswerteste Änderung eine Rückkehr zu Swift 1.0 war, in der Strings wieder als Sammlungen definiert werden. Sie können also ein String-Objekt zeichenweise (SE-0163) mithilfe von durchlaufen für Schleife. Andere bemerkenswerte Änderungen an der Strings-Klasse umfassen:
UnicodeScalars
Eigentum an Charakter
Wörterbücher und Sets wurden als Teil von Collections in Swift 4 überarbeitet, beginnend mit der Filterung von Wörterbüchern, die bisher ein Array von Tupeln zurückgegeben haben, die aus Schlüssel / Wert-Paaren bestehen. Um auf ein bestimmtes Element zuzugreifen, würden Sie wie in einem Array den folgenden Index verwenden:
listOfCars [4] .value
In Swift 4 erhalten Sie stattdessen ein Wörterbuch zurück, das eine konsistentere Syntax bietet. Anschließend greifen Sie auf das zurückgegebene Wörterbuch wie auf ein normales Wörterbuch zu. Dasselbe gilt jetzt für die Karte()
Funktion, wo Sie auch ein Wörterbuch zurückbekommen. Neu für Wörterbuchzugriffsskripts können Sie einen Standardwert angeben, falls der Schlüssel nicht vorhanden ist, wodurch Ihr Code sicherer wird.
let tomTheCat = animal ["name", Standard: "id"]
Die restlichen Änderungen für Sammlungen umfassen:
MutableCollection.swapAt (_: _ :)
Schließlich gibt es einige andere Änderungen, die in dieser Version bezüglich der Sprache beachtet werden sollten:
Die vollständige Liste der Änderungen und Originalvorschläge finden Sie unter Swift.org.
iOS 11-Nutzer des App Store hätten bereits bemerkt, dass sie ein völlig neues Design mit völlig neuen Abschnitten aufweisen und Entwicklern neue Möglichkeiten bieten, wie sie ihre Apps bewerben und mit ihren Benutzern kommunizieren können.
Wir beginnen mit einem Blick auf das neue Marketing-Symbol, das Sie jetzt mit Ihren App-Updates hochladen müssen.
Obligatorisch | Höhere Priorität
Ab iOS 11 müssen Sie für alle neuen Einsendungen, unabhängig davon, ob Ihre App neu ist oder bereits vorhanden ist, eine App hinzufügen icon-1024.png-ein Marketing-Symbol mit einer Größe von 1024 x 1024. Praktischerweise ist es nicht erforderlich, das Symbol über iTunes Connect, sondern über Xcode by zu übermittelnzu gehen Images.xcassets und fügen Sie das Bild in der richtigen Größe hinzu, genauso wie Sie Ihre anderen Symbole verwalten:
Das Marketing-Symbol wird als Teil des neuen App Store-Entwurfsprozesses verwendet, um ein größeres Bildsymbol für Ihre App im Heute-Bereich oder andere Bereiche anzuzeigen, in denen die App-Grafik vergrößert wird.
Optional | Geringere Priorität
Apple hat den Prozess der In-App-Käufe prominenter und transparenter gestaltet, sodass Benutzer alle In-App-Kaufoptionen direkt über dieselbe Ebene wie die App-Produktanzeige anzeigen und sogar einen In-App-Kauf für die App starten können App während des Herunterladens der aktuellen App. Stellen Sie sich eine Abonnement-App vor, bei der Benutzer, die Ihre App herunterladen, möglicherweise bereits ein Abonnement erwerben möchten. iOS 11 macht dies schneller und bequemer.
Seit iOS 11 können Entwickler bis zu 20 In-App-Käufe, z. B. Abonnements, auf der Produktseite ihrer App bewerben. Diese Kaufoptionen werden auch in den Suchergebnissen angezeigt.
Durch In-App-Käufe können Sie auch das Herunterladen Ihrer App fördern. Wenn ein Benutzer Ihre App nicht installiert hat, einen beworbenen In-App-Kauf erwerben möchte, wird er dazu aufgefordert, die App zuerst herunterzuladen. Sobald die App heruntergeladen wurde, wird die Transaktion in der App fortgesetzt. (Apfel)
Um eine bessere Sichtbarkeit der Promotion bei In-App-Käufen zu gewährleisten, müssen Sie in iTunes Connect die folgenden Metadaten angeben:
Weitere Informationen zur Förderung Ihres In-App-Kaufs finden Sie unter Offizielle Richtlinien von Apple sowie Apples Richtlinien für die Produktseite.
Optional | Geringere Priorität
Etwas, das definitiv überfällig ist und Android-Entwickler seit geraumer Zeit Freude daran haben, ist die Möglichkeit, direkt auf Benutzerkommentare zu reagieren. Mit iOS 11 können Entwickler jetzt auch direkt auf die Bewertungen und Kommentare ihrer Benutzer reagieren. Während dies keine technischen Änderungen erfordert und die Teilnahme optional ist, können Entwickler über iTunes Connect (App > Aktivität > Bewertungen) kann sowohl auf Lob als auch auf Kritik reagieren.
Individualisierte Antworten von Entwicklern können genutzt werden, um stärkere und intimere Beziehungen aufzubauen und eine tiefere Bindung zu fördern, indem sie zeigen, dass ihr Feedback überprüft und beantwortet wird, und von ihnen angesprochene Probleme werden aktiv angehört. Um auf Kommentare zu antworten, rufen Sie einfach iTunes Connect auf, wo Sie das Feedback anzeigen und individuell reagieren können.
Neben der neuen Entwicklerkommentarfunktion hat Apple auch ein neues, formalisiertes SDK bereitgestellt, mit dem Benutzer aufgefordert werden sollen, Apps zu bewerten und zu überprüfen. Das neue SKStoreReviewController
sollte anstelle von Dritten oder manueller Aufforderung von Benutzern zu Überprüfungen verwendet werden, da Apple möchte, dass das Betriebssystem die Häufigkeit der Aufforderungen sowie deren visuelles Erscheinungsbild steuern kann. Daher wird Apple die Eingabeaufforderungen innerhalb von 365 Tagen auf höchstens dreimal beschränken.
Implementieren SKStoreReviewController
, Importiere einfach StoreKit und rufe an requestReview ()
Wie nachfolgend dargestellt:
… StoreKit importieren… SKStoreReviewController.requestReview ()…
Zwar hat Apple die anderen Methoden zur Aufforderung von Benutzern, Feedback zu geben, nicht völlig verboten. Erwarten Sie jedoch, dass sich dies in naher Zukunft ändern wird. Daher sollten Sie überlegen, ob Sie im nächsten Jahr eine Appliance für das Review-Engine von Apple implementieren möchten.
Weitere Informationen finden Sie in den Richtlinien zu Ratings, Reviews und Antworten von Apple.
Optional | Geringere Priorität
Ein weiteres sehr nützliches Feature, das iOS 11 für Entwickler bietet, ist die Möglichkeit, ihre Apps schrittweise für Benutzer freizugeben. Apple nennt dieses schrittweise veröffentlichte Release. Damit soll das Risiko einer Überlastung der Produktionsumgebung auf einmal reduziert werden. Stattdessen werden die Release-Updates über einen Zeitraum von sieben Tagen verteilt.
Unter Version freigeben In iTunes Connect gibt es einen neuen Abschnitt Stufenweise Freigabe für automatische Updates, Dies gibt Ihnen die Möglichkeit, entweder sofort oder über einen Zeitraum von sieben Tagen freizugeben. Entwickler können den schrittweisen Roll-out außerdem bis zu 30 Tage anhalten, was normalerweise der Fall ist, wenn ein schwerwiegendes Problem entdeckt und gemeldet wird.
Das schrittweise Roll-out hindert Benutzer nicht daran, das Update manuell aus dem App Store zu beziehen, sondern richtet sich an Benutzer, die die automatischen Einstellungen für iOS im App Store verwenden.
Lassen Sie uns als Nächstes einen Blick auf die visuellen Änderungen werfen, die im Rahmen von iOS 11 eingeführt wurden. Dabei werden sowohl wichtige als auch weniger wichtige Themen behandelt.
Nachdem wir uns sowohl die Architektur als auch die App Store-Veröffentlichungsänderungen für iOS 11 angesehen haben, können wir jetzt die visuellen Änderungen analysieren und Ihnen dabei helfen, Prioritäten zu setzen, welche Änderungen der Benutzeroberfläche zuerst in Angriff genommen werden sollten.
Obwohl wir sicherlich unsere iOS-Apps erstellen konnten, ohne die Änderungen in diesem Abschnitt zu implementieren und nur die Änderungen in Architektur und App Store zu berücksichtigen, sollten Sie zunächst sicherstellen, dass Ihre App das neue iPhone X visuell unterstützt. Dies bedeutet Änderungen am Navigationsleisten, um die neue physische Kerbe oben anzugehen.
Vor diesem Hintergrund werden wir uns zunächst mit der Aktualisierung Ihrer Benutzeroberfläche für das iPhone X befassen, gefolgt von einigen anderen schnellen Änderungen, die sicherstellen, dass Ihre App modern und auf dem neuesten Stand erscheint.
Obligatorisch | Höhere Priorität
Eine der wichtigsten Aufgaben bei der Aktualisierung Ihrer iOS-App besteht darin, sicherzustellen, dass Ihre App auf neueren Geräten gut aussieht und einwandfrei funktioniert, ohne jedoch die Unterstützung früherer Geräte zu beeinträchtigen. Aus diesem Grund hat Apple sehr hart daran gearbeitet, Entwicklern Tools wie Auto Layout zur Verfügung zu stellen, um Bildschirm-agnostische Layouts zu erstellen, sei es das iPhone 4, 5C oder das 6 und 6 Plus. Seit diesem Jahr haben wir ein Telefon, das nicht nur neue Dimensionen hat, sondern auch eine physische Kerbe an der Spitze hat.
Beachten Sie, dass wir nicht mehr über ein Rechteck-Ansichtsfenster verfügen. Wenn sich die neue Kerbe oben für die physischen Sensoren befindet, wie empfiehlt Apple Ihnen, damit umzugehen? Zum einen möchte Apple nicht, dass Sie schwarze Balken an der Oberseite platzieren, um die Kerbe auszublenden! Stattdessen plädieren sie dafür, dass sich Entwickler dafür einsetzen.
Verdecken Sie die wichtigsten Anzeigefunktionen nicht und machen Sie sie nicht besonders aufmerksam. Versuchen Sie nicht, die abgerundeten Ecken, das Sensorgehäuse oder die Anzeige des Geräts für den Zugriff auf den Startbildschirm auszublenden, indem Sie oben und unten am Bildschirm schwarze Balken anbringen. Verwenden Sie keine visuellen Verzierungen wie Klammern, Blenden, Formen oder Anweisungstexte, um diese Bereiche besonders hervorzuheben. (Richtlinien für iOS-Benutzeroberfläche)
Sie müssen für den Vollbildmodus sorgen und das rahmenlose Design des neuen Geräts nutzen, ohne dabei Teile der Benutzeroberfläche mit den abgerundeten Ecken oder dem Sensorgehäuse (Kerbe) des Geräts zu verdecken..
Die gute Nachricht ist, dass die von UIKit zur Verfügung gestellten UI-Elemente von Apple, wie z UINavigationBar
passen Sie sich bereits an und passen Sie sich den neuen Designanforderungen sofort an. Für benutzerdefinierte Benutzeroberflächenelemente müssen Sie jedoch die Konformitätsarbeit selbst durchführen.
Wenn Sie die Bilder des iPhone 4.7 im Vergleich zum neuen iPhone X betrachten, werden Sie feststellen, dass die Statusleiste nun anders implementiert wird, beginnend mit ihrer Höhe, die auf dem iPhone X von 20 auf 44 pt gestiegen ist.
Apple schlägt vor, dass App-Entwickler, die ihre Statusleisten ausgeblendet haben, diese Entscheidung angesichts des iPhone X noch einmal überdenken und nur im Querformat, nicht im Hochformat, ausblenden sollten.
Verwenden Sie schließlich die Layout-Hilfslinien für den sicheren Bereich, indem Sie Auto-Layouts als Hauptmaßnahme verwenden, um sicherzustellen, dass Ihre App innerhalb der entsprechenden Ränder passt und keine visuellen Hindernisse wie das Überlappen der Statusleiste oder der Navigationsleiste gewährleistet.
Die folgenden WWDC-Videos sind zwei ausgezeichnete Ressourcen, die Ihnen beim Einstieg in die Gestaltung des iPhone X helfen sollen:
Optional | Geringere Priorität
Drag & Drop ist eines der am meisten besprochenen neuen SDKs auf der diesjährigen WWDC. Dies ist etwas, woran sich Desktop-Benutzer seit langem gewöhnt haben, aber das Fehlen der iOS-Plattform bedeutete, dass iPad und iPhone nie wirklich das Multitasking befürworteten. In iOS 11 hat sich dies geändert, da das neue iOS das Ziehen von UI-Elementen nicht nur innerhalb desselben Bildschirms, sondern von einer Anwendung zur anderen unterstützt.
Durch die Nutzung der Multi-Touch-Engine von iOS können Benutzer Inhalte auf einfache Weise zwischen Apps auf dem iPad (oder nur innerhalb desselben Bildschirms auf dem iPhone) verschieben, indem Sie ein Bild, eine Datei, einen Text oder ein bestimmtes Benutzeroberflächenelement antippen und halten, um es zu ziehen es. Dies ist in iOS bereits systemweit integriert. So können Benutzer beispielsweise Text aus Safari in die Reminders-App des Dock ziehen, um ein neues Erinnerungselement zu erstellen.
Dies wurde nicht als obligatorisch für die Implementierung gekennzeichnet. Da es jedoch aufgrund seiner systemweiten Verbreitung rasch zu einem erwarteten Verhalten werden wird, sollten Sie dies eher früher als später versuchen, Prioritäten zu setzen, damit Sie die UX Ihrer App erstellen können entsprechen dem neuen UX-Verhalten des Standardsystems.
UIKit ist mit einer gewissen Unterstützung für Drag & Drop ausgestattet, z. B. für Komponenten UITables
und UICollectionViews
, Sie müssen die Elemente jedoch mit Code überbrücken und anpassen, damit andere Komponenten die gezogene Komponente empfangen können. Dies kann etwas kompliziert sein und liegt außerhalb des Rahmens dieses Artikels, aber ich werde die Drag & Drop-Unterstützung in einem Folgepost nächste Woche ausführlicher behandeln.
Fürs Erste würden Sie Drag & Drop in Ihrem hinzufügen und unterstützen ViewController
's viewDidLoad ()
Methode, indem Sie die beiden unten gezeigten Delegierten implementieren:
Klasse Viewcontroller: UIViewController, UITableViewDataSource, UITableViewDelegate, UITableViewDropDelegate, UITableViewDragDelegate ... func viewDidLoad () ... firstTableView.dragDelegate = self // Sie die Drag Delegierten auf diese Tabelle verknüpfen secondTableView.dropDelegate = self // Sie ordnen den Tropfen Delegierten auf diese Tabelle firstTableView.dropDelegate = self secondTableView.dragDelegate = self firstTableView.dragInteractionEnabled = true secondTableView.dragInteractionEnabled = true…… func tableView (_ tableView: UITableView, itemsForBeginning-Sitzung: UIDragSession, at indexPath) [1] -. 1) Ziehen wird initiiert func tableView (_ tableView: UITableView, performDropWith-Koordinator: UITableViewDropCoordinator) // (2) Löschen wird gestartet
Bleiben Sie dran für unseren nächsten Artikel, wie Sie Drag & Drop-Unterstützung für Ihre iOS 11-App hinzufügen.
Optional | Geringere Priorität
Werfen wir einen Blick auf die verbleibenden UIKit-Änderungen in iOS 11, beginnend mit der UINavigationBar
, was einige bemerkenswerte Verbesserungen, einschließlich der Integration von SearchViewController
und große Titel. Dann schauen wir uns die Verbesserungen an UITableView
, von den neuen und verbesserten Wischaktionen bis zur Tabellensichtzelle automatisch in der eigenen Größe.
Wir haben die Navigationsleisten bereits angesprochen, als wir über das iPhone X diskutierten und wie es mit den neuen Abmessungen der Statusleiste übereinstimmt. Darüber hinaus umfasst der neue, für iOS vorgeschlagene zeitgenössische Designstil neue, größere Titel in Navigationsleisten, die erstmals in der Apple Music App in iOS 10 und seitdem ein etabliertes Designmuster für alle anderen System-Apps in iOS sind.
Durch den größeren Titeltext wird der Kontext des Bildschirms in einer Navigationsleiste stärker betont, und Benutzer können sich bei der Navigation durch die verschiedenen Registerkarten auf die aktive Registerkarte ausrichten. Die Größe des Titeltextes ist nicht statisch, sondern schrumpft, wenn der Benutzer nach unten scrollen und zum vorherigen Stil von iOS 11 zurückkehrt. Wenn Sie dagegen in einer Bildlaufansicht nach unten ziehen, wird der Titeltext geringfügig erhöht.
Verwenden Sie einen großen Titel, wenn Sie den Kontext besonders hervorheben möchten. In einigen Apps kann der große, fette Text eines großen Titels helfen, Personen beim Durchsuchen und Suchen zu orientieren. In einem Layout mit Registerkarten können große Titel beispielsweise helfen, die aktive Registerkarte zu erläutern und den Benutzer darüber zu informieren, wenn er nach oben geblättert wurde. Das Telefon verwendet diesen Ansatz, während Musik große Titel verwendet, um Inhaltsbereiche wie Alben, Interpreten, Wiedergabelisten und Radio zu unterscheiden. Ein großer Titel wechselt zu einem Standardtitel, wenn der Benutzer beginnt, den Inhalt zu scrollen. Große Titel sind nicht in allen Apps sinnvoll und sollten niemals mit Inhalten konkurrieren. Obwohl die Uhr-App ein Tab-Layout hat, sind große Titel nicht erforderlich, da jedes Tab ein eindeutiges, erkennbares Layout hat. (iOS-Benutzeroberflächenrichtlinien)
Als Entwickler müssen Sie entscheiden, ob und wann Sie den großen Textstil basierend auf den Human-Interface-Richtlinien von Apple implementieren möchten. Apple empfiehlt, dass Sie die großen Texttitel nur für Navigationsbildschirme der obersten Ebene und nicht für alle Ebenen verwenden. Um großen Text zu aktivieren, fügen Sie einfach die folgende Eigenschaft hinzu UINavigationController
:
navigationController? .navigationBar.prefersLargeTitles = true
Hierarchisch ist für den Master- und den Detailansicht-Controller unter der Navigationsleiste der große Textmodus standardmäßig aufgrund der übergeordneten Vererbung aktiviert. Wie bereits erwähnt, ist es ratsam, nur die Navigationsbildschirme der obersten Ebene den großen Textmodus zu implementieren. Um die große Textvererbung in Ihrem Detailbildschirm zu unterdrücken, gehen Sie zu Ihrem View-Controller und fügen Sie Folgendes zum Initialisierer hinzu (dies muss zum Zeitpunkt der Initialisierung festgelegt werden):
erforderlicher init? (Coder aDecoder: NSCoder) super.init (coder: aDecoder) navigationItem.largeTitleDisplayMode = .never
Das largeTitleDisplayMode
oben ist eingestellt auf .noch nie
. Ohne diese Zeile ist der Standardwert .automatisch
, In diesem Fall erbt der Detailansicht-Controller die Eigenschaften des übergeordneten View-Controllers.
Die Suche kann jetzt direkt in die Navigationsleisten integriert werden, ohne dass das verknüpft werden muss UISearchViewController
Instanz mit dem Subject-View-Controller (und seiner Tabellenkopfansicht) separat. Ab iOS 11 können Sie die Suchleiste elegant in die Navigationsleiste einbetten:
navigationItem.searchController = UISearchController (searchResultsController: nil)
Sie müssen sich auch anpassen UISearchErgebnisseAktualisierung
natürlich auf Suchbegriffe reagieren. Während iOS die Suchleiste basierend auf der Anzahl der Zeilen in Ihrer Tabellenansicht automatisch verbirgt, können Sie die Suchleiste jederzeit sichtbar machen, indem Sie Folgendes aktivieren:
navigationItem.hidesSearchBarWhenScrolling = false
Abschließend betrachten wir zwei neue und herausragende Funktionen, die in eingeführt wurden UITableViews
ab iOS 11: Self-Sizing und verbesserte Swipe-Aktionen. Self-Sizing wurde bereits in iOS 8 eingeführt, um die Belastung von Entwicklern zu verringern, die manuell Tabellengrößen in der Zellengröße definieren müssen. Die Möglichkeit, die Zellen dynamisch zu skalieren, um den Inhalt der Zeile mithilfe von Auto-Layout anzupassen. Bisher mussten Sie die automatische Größenanpassung explizit anfordern:
tableView.rowHeight = UITableViewAutomaticDimension tableView.estimatedRowHeight = 100
Ab iOS 11 ist es standardmäßig aktiviert und ohne zusätzlichen Code eingestellt. Sie können jedoch weiterhin die Zeilenhöhe nach Bedarf explizit angeben. iOS 11 hat auch neue führende und nachfolgende Wischaktionen hervorgebracht, die in vielen System-Apps, wie Apples eigener Mail-App, vorherrschen.
Sie können nicht nur nach links oder rechts streichen, sondern Sie können auch Bilder anhängen, um diese Aktionen zu verknüpfen. Sie implementieren zwei Delegatmethoden als Teil von UIContextualAction
, für führende und nachfolgende Wischaktionen:
func tableView überschreiben (_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? let trash = UIContextualAction (Stil: .normal, Titel: "Delete") Aktion, Ansicht, CompletionHandler im Druck ("Delete") completionHandler (true) delete.backgroundColor = UIColor.red "delete") let actionGroup = UISwipeActionsConfiguration (actions: [delete]) actionGroup.performsFirstActionWithFullSwipe = false return actionGroup ... überschreibt func tableView (_tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath). let archive = UIContextualAction (Stil: .normal, Titel: "Archiv") action, view, completionHandler in print ("Read") completionHandler (true) archive.backgroundColor = blau archive.image = UIImage (genannt: "Archiv) ") let move = UIContextualAction (Stil: .normal, Titel:" Move ") action, view, completionHandler im Druck (" Move ") completionHandler (true) move.backgroundColor = purple move.image = UIImage (genannt:" move ") let actionGroup = UISwipeActionsConfiguration (Aktionen: [Archiv, Verschieben]) actionGroup.performsFirstActionWithFullSwipe = false return actionGroup
Mit dem obigen Code können Sie mehr als eine kontextabhängige Aktion erstellen und sie der UISwipeActionsConfiguration
Gruppierungsinstanz für mehr als eine Aktion. Dies ist eine einfache, aber einnehmende Verbesserung, um Ihre Tabellenansichten mit minimalen Codeänderungen elastischer zu gestalten. Es ist zwar nicht zwingend erforderlich, aber es lohnt sich, einige Stunden in Ihrer Sprint-Planungstafel zuzuordnen.
In diesem Beitrag habe ich Ihnen einen Überblick über die Änderungen in der Architektur, im App Store und in den visuellen Komponenten von iOS 11 gegeben. Sie erhalten eine Vorstellung davon, was Sie sofort tun müssen und was auf einen späteren Zeitpunkt verschoben werden kann Zeit. Die Migration zu iOS 11 und Swift 4 wird wesentlich einfacher als in den Updates der letzten Jahre.
Neben den bevorstehenden Änderungen haben wir auch die Änderungen von Swift 4 durchlaufen, die die Zeichenfolgen und Kollektionen sowie die visuellen Verbesserungen verbessern UITableView
und Controller suchen. Dies sollte Ihnen die Planung Ihrer Arbeit erleichtern, um Updates für Ihre App vorzunehmen!
Bleiben Sie dran für meinen kommenden Beitrag zur Implementierung von Drag & Drop für Ihre iOS 11-Apps. In der Zwischenzeit finden Sie auch einige unserer anderen Beiträge zu neuen Änderungen an iOS und Swift!