objective create ios swift uiimageview

ios - create - uiimageview set image swift



Cómo hacer un UIImageView en el guión gráfico en el que se puede hacer clic(swift) (5)

En el guión gráfico, establezca la interacción del usuario de la vista de imagen habilitada y luego obtenga este método

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = [touches anyObject]; if ([touch view] == yourImageView) { //add your code for image touch here } }

Soy nuevo en el desarrollo veloz (y Xcode en general) y me preguntaba cómo hacer un ImageView en el guión gráfico en el que se pueda hacer clic. Lo que trato de hacer es hacerlo de manera que cuando se hace clic, se muestre otro controlador de vista.


Sugeriría crear un UIButton sin texto y convertirlo en la imagen que desea, en su lugar. Después de hacer eso, puede presionar CTRL-arrastre desde la imagen hasta el controlador de vista al que desea seguar. O simplemente puede hacer una IBAction en el código de su controlador de vista que segmenta manualmente.


para la versión rápida 3.0 intente el código siguiente

override func viewDidLoad() { super.viewDidLoad() let tap1 = UITapGestureRecognizer(target: self, action: #selector(tapGesture1)) imageview.addGestureRecognizer(tap1) imageview.isUserInteractionEnabled = true } func tapGesture1() { print("Image Tapped") }


Puedes agregar tapGesture para eso. Aquí está el código:

class ViewController: UIViewController { @IBOutlet weak var imageView: UIImageView! override func viewDidLoad() { super.viewDidLoad() // create tap gesture recognizer let tapGesture = UITapGestureRecognizer(target: self, action: "imageTapped:") // add it to the image view; imageView.addGestureRecognizer(tapGesture) // make sure imageView can be interacted with by user imageView.userInteractionEnabled = true } func imageTapped(gesture: UIGestureRecognizer) { // if the tapped view is a UIImageView then set it to imageview if let imageView = gesture.view as? UIImageView { println("Image Tapped") //Here you can initiate your new ViewController } } }

Swift 3.0

class ViewController: UIViewController { @IBOutlet weak var imageView: UIImageView! override func viewDidLoad() { super.viewDidLoad() // create tap gesture recognizer let tapGesture = UITapGestureRecognizer(target: self, action: #selector(ViewController.imageTapped(gesture:))) // add it to the image view; imageView.addGestureRecognizer(tapGesture) // make sure imageView can be interacted with by user imageView.isUserInteractionEnabled = true } func imageTapped(gesture: UIGestureRecognizer) { // if the tapped view is a UIImageView then set it to imageview if (gesture.view as? UIImageView) != nil { print("Image Tapped") //Here you can initiate your new ViewController } } }


Puedes hacerlo aún más fácil y hacer que una imagen se pueda hacer clic en Storyboard sin codificación .

  • Primero, debe arrastrar un UITapGestureRecognizer a su UIImageView en Storyboard.
  • Luego, crea el IBAction que desea ejecutar en su código con @IBAction func imageClicked(_ sender: Any) {}
  • A continuación, debe conectar el UITapGestureRecognizer al IBAction en su clase seleccionando el reconocedor de gestos en el Document Outline del Document Outline , luego cambiando a la Connection Inspector Tab y arrastrando las Sent Actions -> Selector a su UIViewController donde luego seleccione la acción apropiada que creó previamente.
  • Finalmente, debe establecer la casilla User Interaction Enabled en la vista de la imagen.

Hecho, un UIImageView completamente seleccionable sin escribir una sola línea de código excepto la función obvia que desea invocar. Pero bueno, si por ejemplo quieres presionar un segue, puedes ir sin codificación usando los reconocedores de gestos Triggered Segues lugar de sus Sent Actions .

Aunque Storyboard tiene sus limitaciones, no es necesario escribir código para imágenes clicables. ;)