ios swift uitableview popup

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