Hola, me llamo Luis y en esta ocasión les traigo un post.
Índice
En iOS 13 presenta un menú contextual que se abre y se abre y reemplaza un toque 3D. Funciona en todos los dispositivos, incluido el iPad, y tiene potentes funciones para crear menús y personalizar sus vistas previas.
- Implementaremos un menú contextual usando vistas de imágenes.
- Usaremos SF Symbols para personalizar los botones del menú contextual.
Abra Xcode y cree un nuevo proyecto de Xcode.
Elija Aplicación de vista única en la plantilla de iOS y haga clic en Siguiente.
Ingrese su Nombre de producto, haga clic en Siguiente y créelo en su escritorio.
Primero, ve a Main.storyboard
y arrastra uno UIImageView
de su biblioteca de objetos, colóquelo en el lienzo y limítelo.
Luego, abra el editor asistente y cree uno IBOutlet
del UIImageView.
Saltar al ViewController.swift
archivar y heredar el protocolo UIContextMenuInteractionDelegate
.
- Crear un
UIContextMenuInteraction
instancia y dar al delegado yo mismo. - Agrega la interacción en
UIImageView.
- Selecciona el
UIImageView
isUserInteractionEnabled
propiedad verdadera.
Todo el código se ve así:
let interaction = UIContextMenuInteraction(delegate: self) imageView.addInteraction(interaction) imageView.isUserInteractionEnabled = true
A continuación, cree un método y el tipo de retorno debe ser UIMenu
. Declarar una propiedad de tipo UIAction
, dar el title
parámetro Share
y el image
el parámetro debe ser UIImage
.
En esto UIImage
estamos usando Símbolo SF. Dale un nombre de sistema de square.and.arrow.up
y en el controlador imprimirá «Algún mensaje de texto». Puede realizar cualquier acción según sus necesidades.
Todo el método se ve así:
func createContextMenu() -> UIMenu {let shareAction = UIAction(title: "Share", image: UIImage(systemName: "square.and.arrow.up")) { _ inprint("Share")}let copy = UIAction(title: "Copy", image: UIImage(systemName: "doc.on.doc")) { _ inprint("Copy")}let saveToPhotos = UIAction(title: "Add To Photos", image: UIImage(systemName: "photo")) { _ inprint("Save to Photos")}return UIMenu(title: "", children: [shareAction, copy, saveToPhotos])}
func createContextMenu() -> UIMenu let shareAction = UIAction(title: "Share", image: UIImage(systemName: "square.and.arrow.up")) _ inprint("Share")let copy = UIAction(title: "Copy", image: UIImage(systemName: "doc.on.doc")) _ inprint("Copy")let saveToPhotos = UIAction(title: "Add To Photos", image: UIImage(systemName: "photo")) _ inprint("Save to Photos")return UIMenu(title: "", children: [shareAction, copy, saveToPhotos])
func contextMenuInteraction(_ interaction: UIContextMenuInteraction, configurationForMenuAtLocation location: CGPoint) -> UIContextMenuConfiguration? return UIContextMenuConfiguration(identifier: nil, previewProvider: nil) _ -> UIMenu? inreturn self.createContextMenu()
En el método anterior, hemos regresado UIContextMenuConfiguration
y en el controlador hemos devuelto nuestro método.
Ejecute el código ahora y toque prolongadamente el UIImage
. El resultado debería ser algo como esto:
Gracias por leer este post.
Añadir comentario