Sono nuovo di swift (e lo sviluppo di Xcode in generale) e mi chiedevo come fare un ImageView sullo storyboard cliccabile. Quello che sto cercando di fare è renderlo così quando viene cliccato, mostra un altro controller di visualizzazione.Come rendere UIImageView sullo storyboard selezionabile (rapido)
risposta
È possibile aggiungere tapGesture per questo. Ecco il codice:
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
}
}
}
Anche se questa è una possibilità, è molto meglio creare un 'UIButton' con un'immagine piuttosto che fare clic su un'immagine. Quando aggiungi le opzioni di accessibilità, mi ringrazierai. – vrwim
Suggerirei di creare un UIButton senza testo e renderlo invece l'immagine che si desidera. Dopo averlo fatto, puoi trascinare CTRL dall'immagine al controller della vista che vuoi seguire. Oppure puoi semplicemente creare un IBAction nel codice del tuo controller di visualizzazione che segue manualmente.
Questo funziona abbastanza bene. È possibile configurare UIImageView incorporato anche nel pulsante. Evita il problema del livello misto che aveva il vecchio trucco di sovrapporre un UIImageView a un pulsante trasparente. –
Nello storyboard impostare un'immagine interazione vista utente abilitato e quindi ottenere con questo metodo
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
if ([touch view] == yourImageView)
{
//add your code for image touch here
}
}
per SWIFT versione 3.0 prova sottostante Codice
override func viewDidLoad() {
super.viewDidLoad()
let tap1 = UITapGestureRecognizer(target: self, action: #selector(tapGesture1))
imageview.addGestureRecognizer(tap1)
imageview.isUserInteractionEnabled = true
}
func tapGesture1() {
print("Image Tapped")
}
Puoi farlo ancora più facile e fare un cliccabile immagine tramite Storyboard senza codifica.
- In primo luogo è necessario trascinare un
UITapGestureRecognizer
sul vostroUIImageView
in Storyboard. - Poi si crea l'IBAction che si desidera eseguire nel codice con
@IBAction func imageClicked(_ sender: Any) {}
- Dopodiché è necessario collegare il
UITapGestureRecognizer
allaIBAction
nella tua classe selezionando il sistema di riconoscimento gesto nelDocument Outline
, poi il passaggio allaConnection Inspector Tab
e trascinando ilSent Actions
->Selector
per il tuoUIViewController
dove si seleziona l'azione appropriata creata in precedenza. - Infine, è necessario impostare la casella di controllo
User Interaction Enabled
nella vista dell'immagine.
Fatto, un UIImageView completamente cliccabile senza scrivere una singola riga di codice tranne la funzione ovvia che si desidera richiamare. Ma hey, se per esempio vuoi spingere un seguito invece, puoi passare senza codifica usando i riconoscimenti di gesture Triggered Segues
invece del suo Sent Actions
.
Anche se gli storyboard hanno i loro limiti, non c'è bisogno di scrivere codice per le immagini cliccabili. ;)
- 1. Come rendere UIView selezionabile
- 2. Come rendere UITableView Header selezionabile?
- 3. come rendere uitableviewcell non selezionabile
- 4. Come posso rendere selezionabile una casella immagine?
- 5. Come rendere un indirizzo e-mail selezionabile?
- 6. Come rendere selezionabile il testo su tela?
- 7. Come rendere UIButton cliccabile su UIImageView?
- 8. Come posso rendere UIPickerView Multiline in rapido?
- 9. Ottieni tabbarcontroller da un'altra vista sullo storyboard
- 10. Rendere UIImage adatto a UIImageView all'interno di UIView
- 11. Come rendere selezionabile un tag di ancoraggio vuoto in IE7?
- 12. Come faccio a rendere questa lista non selezionabile?
- 13. Come rendere non selezionabile la data passata in fullcalendar?
- 14. Come rendere selezionabile una riga o una cella dati?
- 15. Come rendere una casella di testo non selezionabile utilizzando C#
- 16. Come posso rendere Primefaces selezionabile in stato disabilitato?
- 17. Come rendere una opzione specifica non selezionabile programmaticamente con Selectize.js?
- 18. come rendere l'intera riga della visualizzazione elenco selezionabile?
- 19. XCode Storyboard: come creare un seguito quando il trigger di follow non è sullo storyboard
- 20. Come posso rendere UIImageView cambiare l'immagine a livello di programmazione?
- 21. come rendere cliccabile l'immagine
- 22. Come rendere UIImageView con un tocco per passare ad altri ViewController?
- 23. Come rendere la barra di avanzamento dell'angolo arrotondato in rapido?
- 24. Come si ottiene la dimensione di UIImageView dopo l'applicazione dell'autolayout?
- 25. Insetti per UIImageView?
- 26. HTML: rendere il campo di input selezionabile ma non modificabile
- 27. Come rendere visibile la vista sulla scena dock di Storyboard?
- 28. È possibile rendere selezionabile solo una voce in QTableWidget
- 29. Rendere selezionabile il contenuto della griglia ExtJS 4
- 30. C'è un modo per rendere non selezionabile un DIV?
controllo questo fuori http://stackoverflow.com/a/27235390/3810673 – Ian