1

Ich erstelle eine iMessage App mit einem UISearchBar/UISearchController und einem MKMapView. Die Suchleiste erscheint perfekt in der Kompaktansicht (ich weiß, dass Sie keine Suchleisten in der Kompaktansicht haben können, sondern nur zum Testen), die am oberen Bildschirmrand fixiert sind. In der erweiterten Ansicht ist die Suchleiste jedoch durch die iMessage-Navigationsleiste verborgen. Ich kann die Suchleiste nicht auf die Top-Layout-Anleitung beschränken, da sich der Navigationscontroller über der oberen Layout-Anleitung befindet. Haben Sie Ideen, wie Sie die Suchleiste unterhalb der oberen Navigationsleiste von iMessage eingrenzen können?Verwenden einer Navigationsleiste und iMessage App

Antwort

0

Edit: Ich war nicht auf iOS10 und wusste nicht über iMessage-Apps. Deine Frage ergibt jetzt mehr Sinn. Ich werde meine ursprüngliche Antwort trotzdem hier unten lassen.


Dies ist ein Projekt, das die Grundlagen des ursprünglichen iMessages App von Apple hat. Natürlich gibt es noch viel mehr zu zwicken, aber es sollte Ihnen den Anfang machen.

Zeigt eine Tabellenansicht mit Nachrichten, die Suchleiste ist ursprünglich verborgen, es sei denn, Sie scrollen nach oben und sobald Sie auf die Suchleiste klicken, wird die Navigationsleiste ausgeblendet und die Suchleiste zeigt auch die Schaltfläche Abbrechen.

Wenn Sie das gesamte Projekt herunterladen möchten, um zu sehen, wie ich das Storyboard eingerichtet habe, können Sie das Projekt hier herunterladen. http://www.filedropper.com/forjeremykelleher

enter image description here enter image description here

import UIKit 

class TableViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { 

@IBOutlet weak var tableView: UITableView! 
var messages = [Int]() 

override func viewDidLoad() { 
    super.viewDidLoad() 

    for x in 0...25 { 
     messages.append(x) 
    } 

    // Start with the tableview scrolled down by 44 
    // so the search bar doesn't show up only until you scroll back up 
    // Like in the iMessage App. 
    let height = tableView.tableHeaderView?.frame.size.height 
    let pointXY = CGPoint(x: 0, y: height!) 
    tableView.setContentOffset(pointXY, animated: false) 
} 

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return messages.count 
} 

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("cell") as! TableViewCell 
    cell.messageLabel.text = "Message # \(indexPath.row)" 

    return cell 
} 

} 

extension TableViewController: UISearchBarDelegate { 

func searchBarTextDidBeginEditing(searchBar: UISearchBar) { 
    // Hide the navigation bar when they press on search 
    navigationController?.setNavigationBarHidden(true, animated: true) 
    searchBar.setShowsCancelButton(true, animated: true) 
} 

func searchBarCancelButtonClicked(searchBar: UISearchBar) { 
    navigationController?.setNavigationBarHidden(false, animated: true) 
    searchBar.setShowsCancelButton(false, animated: false) 
    searchBar.resignFirstResponder() 

} 

} 
+0

glaube ich, die ursprüngliche Frage zu dem neuen iMessage Apps in iOS ist 10, nicht der Standard-Nachrichten-App. – nathan

+0

Die Frage macht jetzt viel mehr Sinn. – sweepez

Verwandte Themen