ios - popover swift
¿Cómo crear una vista popup personalizada con swift? (2)
En el guión gráfico
- En el guión gráfico, crea un UIViewController y diseña según tus necesidades.
- Establezca la clase personalizada como otroViewController y Storyboard_ID como another_view_sid
- Cree una nueva Clase Cocoa Touch como otro ViewController y subclase de UIVIewController
En viewController
let popvc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "another_view_sid") as! anotherViewController
self.addChildViewController(popvc)
popvc.view.frame = self.view.frame
self.view.addSubview(popvc.view)
popvc.didMove(toParentViewController: self)
En otro ViewController
override func viewDidLoad() {
super.viewDidLoad()
showAnimate()
}
}
@IBAction func Close_popupView(_ sender: Any) {
removeAnimate()
}
func showAnimate()
{
self.view.transform = CGAffineTransform(scaleX: 1.3, y: 1.3)
self.view.alpha = 0.0
UIView.animate(withDuration: 0.25, animations: {
self.view.alpha = 1.0
self.view.transform = CGAffineTransform(scaleX: 1.0, y: 1.0)
})
}
func removeAnimate()
{
UIView.animate(withDuration: 0.25, animations: {
self.view.transform = CGAffineTransform(scaleX: 1.3, y: 1.3)
self.view.alpha = 0.0
}, completion: {(finished : Bool) in
if(finished)
{
self.willMove(toParentViewController: nil)
self.view.removeFromSuperview()
self.removeFromParentViewController()
}
})
}
Así que estoy trabajando en una aplicación simple, donde uso una vista de tabla. Esta vista de tabla muestra el nombre de "jugadores". Pero para poder agregar jugadores en la vista de tabla, quiero que se muestre una ventana emergente con un campo de texto donde usted proporciona el nombre.
Ahora he estado leyendo acerca de cómo crear un archivo xib o nib, pero no estoy seguro de cómo "cargar" la ventana emergente.
¿Cuál es el mejor enfoque para esto?
Se ve como esto:
UIView
una UIView
personalizada con todos los objetos respetados necesarios, desde viewDidLoad () de tu Controlador la ocultarás.
customView.hidden = true
Siempre que su usuario desee realizar alguna acción o tarea, la mostrará y una vez que el usuario finalice , vuelva a ocultarla o elimine de la supervista .
customView.hidden = false
A continuación hay un código para ayudarlo a comenzar
private var customView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
customView.hidden = true
}
private func loadCustomViewIntoController() {
let customViewFrame = CGRect(x: 0, y: 0, witdh: view.frame.width, height: view.frame.height - 200)
customView = UIView(frame: customViewFrame)
view.addSubview(customView)
customView.hidden = false
// any other objects should be tied to this view as superView
// for example adding this okayButton
let okayButtonFrame = CGRect(x: 40, y: 100, width: 50, height: 50)
let okayButton = UIButton(frame: okayButtonFrame )
// here we are adding the button its superView
customView.addSubview(okayButton)
okayButton.addTarget(self, action: #selector(self.didPressButtonFromCustomView:), forControlEvents:.TouchUpInside)
}
func didPressButtonFromCustomView(sender:UIButton) {
// do whatever you want
// make view disappears again, or remove from its superview
}
@IBAction func rateButton(sender:UIBarButtonItem) {
// this barButton is located at the top of your tableview navigation bar
// when it pressed make sure you remove any other activities that were on the screen, for example dismiss a keyboard
loadCustomViewIntoController()
}
Compruébelo este proyecto github , está cerrado para estar listo para producción, le brinda una mejor manera de tratar (presentar y descartar) con UIViews
Si solo quieres el nombre del jugador, utiliza un
UIAlertController
contenga un campo de texto