implementieren Ich habe eine Tabelle mit 3 statischen Zellen, jede Zelle enthält eine Unteransicht mit Etiketten den gewünschten Text anzeigen, was ich erreichen möchte, ist die Ausrichtung programmatisch von Portrait drehen in Landscape, wenn der Benutzer auf eine der 3 Untersichten klickt.Wie man eine TAP-Geste Erkenner für mehrere Unteransichten mit Swift
Ich habe es für die erste Unteransicht funktioniert. Wenn ich jedoch versuche, den anderen Unteransichten denselben Tap-Gestenerkenner hinzuzufügen, funktioniert er immer noch nur für eine Unteransicht. Bitte beraten, was fehlt mir? Danke für jede Eingabe.
Porträt:
Landschaft
Tabelle View-Controller-Code:
import UIKit
class SampleTableViewController: UITableViewController {
@IBOutlet weak var newYorkViewWrapper: UIView!
@IBOutlet weak var sanFranciscoViewWrapper: UIView!
@IBOutlet weak var chicagoViewWrapper: UIView!
//Vars
let tapRec = UITapGestureRecognizer()
override func viewDidLoad() {
super.viewDidLoad()
print("Sample view rendered.")
//Tap gesture
tapRec.addTarget(self, action: "tappedView")
newYorkViewWrapper.addGestureRecognizer(tapRec)
newYorkViewWrapper.userInteractionEnabled = true
sanFranciscoViewWrapper.addGestureRecognizer(tapRec)
sanFranciscoViewWrapper.userInteractionEnabled = true
chicagoViewWrapper.addGestureRecognizer(tapRec)
chicagoViewWrapper.userInteractionEnabled = true
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
//--------------------------------------------------------
// MARK: Hide status bar
//--------------------------------------------------------
override func prefersStatusBarHidden() -> Bool {
return true
}
func tappedView(){
let value = UIInterfaceOrientation.LandscapeLeft.rawValue
UIDevice.currentDevice().setValue(value, forKey: "orientation")
}
//--------------------------------------------------------
// MARK: View Orientation method
//--------------------------------------------------------
override func shouldAutorotate() -> Bool {
return true
}
}
Beachten Sie, dass Sie Gestenerkenner in Storyboards oder Xib-Dateien hinzufügen und sie dort verbinden können (indem Sie sie mit Ansichten verbinden und das Ziel/die Aktion verbinden). Auf diese Weise benötigen Sie keinen benutzerdefinierten Code. –