2017-02-08 4 views
0

Ich konfrontiert mit einem Flash von ViewController, wo SearchField First Responder ist, wenn ich zu diesem Controller zurückkehren. Ich habe versucht, ich auf ios9, aber es gibt kein solches Problem, so sieht es aus, dass es in ios10 verursacht wird.Flackern von ViewController, wo TextField erste Antwort ist

Könnten Sie bitte beraten, was könnte ein Grund dafür sein und wie es zu lösen? Vielen Dank im Voraus für jeden Vorschlag.

enter image description here

EDIT:

Meine Ansicht Hierarchie ganz einfach (es ist nur eine Demo), aber bewirken, dass das Problem auch hier happends suche ich es hier. Der Code sieht wie folgt aus:

class ViewController: UIViewController { 

    @IBOutlet weak var searchBar: UISearchBar! 


    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
    } 

    override func viewWillAppear(_ animated: Bool) { 

     searchBar.becomeFirstResponder() 
    } 
} 

enter image description here

+0

Haben Sie versucht, die Tastatur zu schließen, bevor Sie mit der zweiten VC verbunden sind? Und wenn Sie die Tastatur beim Abwickeln wieder hochfahren müssen, tun Sie es dann? – dfd

+0

auf Knopf klicken (Experiment), schreibe self.view.endEditing = true – Himanshu

+0

@dfd, ja, ich habe versucht, in viewWillAppear ich setze: searchBar.becomeFirstResponder() und in viewWillDisappear: searchBar.resignFirstResponder(). aber leider die gleiche Wirkung – Melany

Antwort

1

ich auch dieses Problem konfrontiert. In meinem Fall war der Bildschirm auf der ersten Seite eine Stapelansicht innerhalb einer Bildlaufansicht und ich bin mir immer noch nicht sicher warum das geschah, aber das Festlegen der Inhaltseinfügung der Bildlaufansicht in viewWillAppear behob dieses Problem für mich. Ich habe diesen Code dafür:

let insets = UIEdgeInsetsMake(0.0, 0.0, 0.0, 0.0) 
scrollView.contentInset = insets 
scrollView.scrollIndicatorInsets = insets 
scrollView.contentSize = CGSize(width: stackView.frame.width, height: stackView.frame.height) 

Wenn diese Art der Lösung nicht für Sie arbeiten, können Sie einige weitere Details über die Hierarchie der Objekte auf Ihrer Ansicht hinzufügen?

Vielleicht würde die Einstellung contentInset der UISearchBarController dieses Problem beheben.

+0

, vielen Dank für Ihre Hilfe Ich habe meine Frage bearbeitet. Leider hat Ihre Lösung dieses Problem nicht gelöst. – Melany

+1

Überprüfen Sie diese Antwort, es scheint Ihr Problem behoben zu haben: http://stackoverflow.com/a/32772461/3543861 –

+0

Vielen Dank, aber in meinem Fall waren das Problem nicht die Transclucensy und Farbe, aber diese Lösung sieht ziemlich gut. Für jetzt habe ich gerade den Aufruf von findFirstRespinder zu viewDidAppear verschoben. Es ist nicht sehr schön, sieht aber glatter aus – Melany

Verwandte Themen