Lição: 81: Alertas, Folhas de Ação e Modais
Nesta aula, exploraremos como apresentar alertas, folhas de ação e controladores de visualização modal em uma aplicação iOS usando Swift. Esses componentes de interface do usuário são essenciais para interagir com os usuários, fornecer informações importantes ou coletar entradas do usuário.
Alertas
Um alerta é uma mensagem pop-up que exibe informações para o usuário. Ele também pode solicitar a confirmação do usuário sobre uma ação específica. Vamos ver como criar e exibir um alerta.
Criando um Alerta
Aqui está um exemplo simples que demonstra como criar e apresentar um alerta:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Exibir alerta quando a visualização for carregada
mostrarAlerta()
}
func mostrarAlerta() {
let alertController = UIAlertController(title: "Título do Alerta",
message: "Esta é uma mensagem de alerta.",
preferredStyle: .alert)
let acaoOK = UIAlertAction(title: "OK", style: .default) { _ in
print("OK pressionado")
}
alertController.addAction(acaoOK)
// Apresentar o alerta
present(alertController, animated: true, completion: nil)
}
}
Alerta com Múltiplas Ações
Você também pode adicionar vários botões a um alerta. Veja como fazer isso:
func mostrarAlertaMultiplaAcoes() {
let alertController = UIAlertController(title: "Escolha uma Opção",
message: "Selecione sua ação.",
preferredStyle: .alert)
let acaoCancelar = UIAlertAction(title: "Cancelar", style: .cancel)
let acaoConfirmar = UIAlertAction(title: "Confirmar", style: .default) { _ in
print("Confirmado")
}
alertController.addAction(acaoCancelar)
alertController.addAction(acaoConfirmar)
present(alertController, animated: true, completion: nil)
}
Folhas de Ação
As folhas de ação são semelhantes aos alertas, mas deslizam de baixo para cima na tela e são usadas normalmente para apresentar um conjunto de opções relacionadas a ações que o usuário pode realizar. Vamos ver como apresentar uma folha de ação:
Criando uma Folha de Ação
func mostrarFolhaDeAcao() {
let actionSheet = UIAlertController(title: "Escolha uma Opção",
message: "Selecione uma ação.",
preferredStyle: .actionSheet)
let acaoDeletar = UIAlertAction(title: "Deletar", style: .destructive) { _ in
print("Deletado")
}
let acaoEditar = UIAlertAction(title: "Editar", style: .default) { _ in
print("Editar selecionado")
}
let acaoCancelar = UIAlertAction(title: "Cancelar", style: .cancel)
actionSheet.addAction(acaoDeletar)
actionSheet.addAction(acaoEditar)
actionSheet.addAction(acaoCancelar)
present(actionSheet, animated: true, completion: nil)
}
Folha de Ação no iPad
Ao usar folhas de ação em iPads, precisamos especificar a fonte para o popover:
func mostrarFolhaDeAcaoNoIpad(de fonteView: UIView) {
let actionSheet = UIAlertController(title: "Escolha uma Opção",
message: "Selecione uma ação.",
preferredStyle: .actionSheet)
// Restante das ações...
actionSheet.popoverPresentationController?.sourceView = fonteView
present(actionSheet, animated: true, completion: nil)
}
Modais
Modais são outra forma de apresentar um novo controlador de visualização sobre o controlador de visualização atual, geralmente para fins de entrada ou para apresentar funcionalidades adicionais.
Apresentando um Controller de Visualização Modal
Aqui está um exemplo de como apresentar um controlador de visualização modal:
class ModalViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .white
let botaoDismiss = UIButton(type: .system)
botaoDismiss.setTitle("Fechar", for: .normal)
botaoDismiss.addTarget(self, action: #selector(dismissModal), for: .touchUpInside)
botaoDismiss.center = view.center
view.addSubview(botaoDismiss)
}
@objc func dismissModal() {
dismiss(animated: true, completion: nil)
}
}
func apresentarModal() {
let modalVC = ModalViewController()
modalVC.modalPresentationStyle = .fullScreen // ou .overFullScreen
present(modalVC, animated: true, completion: nil)
}
Estilos de Apresentação Modal
Existem vários estilos de apresentação disponíveis para modais:
.fullScreen
- O modal cobre toda a tela..pageSheet
- O modal é exibido em uma folha padrão..formSheet
- O modal é exibido em uma visualização menor centralizada (apenas no iPad)..overFullScreen
- O modal é exibido sobre a visualização em tela cheia.
Você pode definir o estilo de apresentação como mostrado no exemplo anterior com modalVC.modalPresentationStyle
.
Conclusão
Nesta aula, abordamos como criar e exibir alertas, folhas de ação e modais em Swift usando UIKit. Esses componentes são essenciais para fornecer feedback, coletar entradas do usuário e gerenciar interações em suas aplicações iOS. Pratique o uso desses elementos de interface do usuário para aprimorar a usabilidade do seu aplicativo!