UISheetPresentationController a iOS 15 per al full inferior

Amb el llançament de SwiftUI, algunes persones han preguntat si UIKit serà mort. Està lluny de ser mort. A iOS 15, els enginyers d’Apple continuen introduint noves funcions a UIKit. Un dels aspectes més destacats és UISheetPresentationController. Aquesta nova classe us permet crear fàcilment un full inferior expandible amb poques línies de codi.

Si no teniu ni idea de què full inferior és a dir, obriu l’aplicació incrustada de Maps per veure-la. Es mostra el full inferior perquè els usuaris puguin cercar i accedir a les ubicacions desades. Es pot canviar la mida del full. Podeu lliscar el full inferior per desplegar-lo i plegar-lo. De fet, aquest tipus d’interfície d’usuari es pot trobar en algunes aplicacions populars com Google Maps, Twitter i Instagram.

targetes de poma de fulla inferior

En aquest tutorial veurem com treballar UISheetPresentationController i personalitzar les seves propietats. L’aplicació de demostració és molt senzilla amb un sol botó. Quan es toca el botó, l’aplicació mostra el contingut web mitjançant el full següent.

Utilitzeu UISheetPresentationController per presentar un full inferior

A iOS 15, UIViewController té una propietat nova anomenada sheetPresentationController. Per als controladors de visualització que hereten de UIViewController, podeu accedir-hi sheetPresentationController propietat per recuperar la instància UISheetPresentationController per personalitzar el seu aspecte.

Podeu especificar la mida del controlador de presentació de fulls configurant detents Propietat. Aquí teniu un exemple que mostra com definir la mida del full inferior:

El WebViewController és una subclasse de UIViewControllerde manera que puguem recuperar la instància de UISheetPresentationController des de sheetPresentationController Propietat.

El detents la propietat determina la matriu d’altures on pot recolzar la fulla. Tu utilitzes .medium() per mostrar un full que ocupa la meitat de l’alçada de la pantalla. Per mostrar un full d’alçada completa, utilitzeu .large() detenció.

full inferior-mida mitjana-gran

Es proporciona l’exemple de codi anterior per utilitzar-lo .medium() i .large() dins detents Propietat. En aquest cas, el full ocupa primer la meitat de la mida de la pantalla. Quan arrossegueu cap amunt el controlador de visualització web, el full s’expandirà completament.

Si inverteix l’ordre de valors com aquest, l’aplicació mostrarà primer el full d’alçada completa.

Personalitzeu el full amb Grabber

A més de controlar la mida del full, UISheetPresentationController class proporciona diverses opcions per a més personalitzacions.

UISheetPresentationController-grapple

Per exemple, podeu mostrar una pinça a la part superior del full prefersGrabberVisible propietat a true:

Quan es presenta el full, la vista principal es disminueix automàticament. Si voleu que es mantingui tal com està, definiu el valor a smallestUndimmedDetentIdentifier a .medium:

El sistema deixarà de disminuir la vista principal quan es mostri el full.

Personalitzeu el full per desplaçar-vos per la vista

Quan utilitzeu un full de mida mitjana per mostrar contingut de desplaçament, és possible que tingueu un petit problema. A mesura que es desplaça cap amunt, el full també s’ampliarà. Pot ser que això no sigui una cosa que volem. El que esperem és que la mida del full segueixi sent la mateixa que naveguem pel contingut.

vista per desplaçar-se per la part inferior del full

UISheetPresentationController proporcionar una propietat amb un nom prefersScrollingExpandsWhenScrolledToEdge per resoldre el problema. Tot el que heu de fer és establir el valor de la propietat en false:

Un cop fet el canvi, podeu desplaçar-vos pel contingut correctament, fins i tot si el full ocupa la meitat de la mida de la pantalla. Per ampliar el full, simplement feu lliscar la pinça cap amunt.

prefersScrollingExpandsWhenScrollToEdge-demo

Personalitzeu el radi de la cantonada

radi de la cantonada inferior del full

El preferredCornerRadius la propietat us permet canviar el radi de la cantonada del full. Un valor superior us proporciona cantonades més arrodonides:

Resum

L’addició de UISheetPresentationController és un canvi benvingut per UIKit. Ja no cal que desenvolupem la nostra pròpia conversió per mostrar el full inferior. Ara és tan fàcil aplicar aquest popular model d’interfície d’usuari a les nostres aplicacions.


Fundador d’AppCoda. Autor de nombrosos llibres sobre programació iOS, incloent Iniciar la programació iOS amb Swift i Mastering SwiftUI. Desenvolupador d’aplicacions per a iOS i Blogger. Segueix-me a Facebook, Twitter i Google+.

Add a Comment

Your email address will not be published. Required fields are marked *