SwiftUI és WatchOS: Műveletgombok a navigációs sáv alatt

Frissítse a watchOS alkalmazást, hogy megfeleljen az új Apple irányelveknek

Mint mindannyian tudjuk, a watchOS 7 bevezetése megölte az erőszakos érintést. Valójában a watchOS 7 előtti verzióiban az emberek határozottan megnyomhatták a kijelzőt, hogy megnyissák az aktuális képernyőre vonatkozó rejtett menüt.

Az Apple most azt javasolja, hogy távolítsa el az alkalmazásunkból a rejtett menüket, és vizsgálja meg az egyes elemeket annak megállapításához, hogy ezek információt nyújtanak-e, vagy végrehajtanak-e valamilyen műveletet.

Az emberi felületre vonatkozó irányelveikben néhány alternatívát nyújtanak a cselekvésre alkalmas elemekhez. Az egyik egy műveletgombot tesz a navigációs sáv alá.

Ebben a kialakításban az emberek lehúzódnak, hogy felfedjék a gombot. Annak ellenére, hogy egy ilyen gomb nem látható a képernyő első megnyitásakor, az emberek könnyen felfedezhetik, mert a húzás nagyon gyakori gesztus. Például a Mail áthelyezi az Írás gombot egy rejtett menüből egy beérkező üzenetek listája fölé. Az Írás gomb nincs útban, amíg az emberek nem húzzák le a képernyőt az üzenetlista frissítéséhez.

Ebben a cikkben megvizsgáljuk ezt a megoldást. Így fog kinézni alkalmazásunk:

Először hozzunk létre egy új SwiftUI watchOS projektet:

Válassza a WatchOS, majd a Alkalmazás megtekintése:

lehetőséget

Színes lista létrehozása

Lépjünk a ContentView.swift oldalra, és hozzunk létre tíz színes kört egy függőleges ScrollView :

A színek -t, a Color típusú tömböt a @State jelzéssel láttuk el, mert később módosítanunk kell azt a gombot, amelyet a navigációs sáv.

Ezután a gomb elrejtéséhez be kell ágyaznunk egy ScrollViewReader nevű struktúrát (amelyet a watchOS 7 és iOS 14 rendszerrel együtt vezetünk be) a ScrollView fájlunkba:

A ScrollViewReader struktúra a scrollTo () nevű metódust biztosítja, amely a szülő ScrollView belsejében lévő bármely nézethez csak a horgonyának megadásával tud mozogni. Így beállíthatjuk a scrollTo () értéket a listánk első elemére ( scrollTo (0) ) a onAppear módszeren belül, amelyet a nézet megjelenésekor hajtanak végre.

Bevezettünk egy új @State changed -t is, hogy csak szükség esetén szerkesszük a színek tömböt.

Az alkalmazás befejezésének utolsó lépése egy gomb létrehozása és a ForEach hurok elé helyezése.

Ha most futtatjuk az alkalmazásunkat, a „Szín módosítása” gombot el kell rejteni, és húzáskor meg kell tudnunk jeleníteni:

Köszönjük, hogy elolvastad! Remélem, élvezte ezt a kis oktatóanyagot, és valami újat tanult. A kész projekt megtalálható a GitHub oldalon.