Ich habe eine UIView mit 3 verschachtelten UIViews. Ihre Gesamtbreite beträgt 300% des Bildschirms. (Jeweils 100%). Ich ändere AutoLayout-Prioritäten, um die erforderlichen auf dem Bildschirm und andere aus dem Bildschirm mit Schaltflächen aus NavBar klicken.UITableView Element wird markiert, und dann wird abgewählt - Swift
| uiview1 | | uiview2 | | uiview3 |
uiview3 hat eine UITableView. Es füllt sich, scrollt perfekt, aber wenn man auf einen Gegenstand tippt, wird der Gegenstand für eine Sekunde hervorgehoben und dann freigegeben. Die Funktion 'didSelectRowAt' wird NICHT aufgerufen.
Ich habe versucht, jede andere auf diesem VC registrierte Geste zu deaktivieren. Der Klick wird ebenfalls erkannt, bleibt jedoch nicht bestehen und wird sofort deaktiviert.
//globally in VC
@IBOutlet weak var salamsTable: UITableView!
//in viewDidLoad
self.salamsTable.delegate = self
self.salamsTable.dataSource = self
//delegate functions
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
{
print (indexPath.row) // this never gets called
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return self.allSalam.count //works perfectly
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
var cell = self.msgsTable.dequeueReusableCell(withIdentifier: "messages") as! MessageCell
return cell // works perfectly
}
Visuelle Demo:
Können Sie etwas von Ihrem Code veröffentlichen? –
Bitte geben Sie den entsprechenden Code ein, wenn Sie eine Frage stellen. Es gibt viele Gründe, warum ein Problem auftritt, aber ohne einen Code zu bewerten, ist es schwierig, die Möglichkeiten einzuschränken. – PeejWeej
Meine Vermutung ist, dass dies mit den Änderungen des Auto-Layouts zu tun hat. Gibt es einen Grund, warum Sie nicht einen UINavigationController oder einen UIPageViewController zum Organisieren und Anzeigen dieser drei View-Controller verwenden möchten? –