2012-03-25 19 views
0

Ich habe ein UITableView und ich möchte ein UITextField über der Tabelle hinzufügen, aber ich möchte nicht, dass es beim Scrollen der Tabellenansicht scrollt. Ich möchte, dass das Uitextfield oben bleibt. Ich habe mir eine frühere Antwort in diesen Foren angesehen, aber sie alle sprechen über eine .xib-Datei und ich versuche, dies mit Xcode 4.3 und Storyboards zu tun. Wenn Sie etwas grundlegenden Code zur Verfügung stellen könnten, würde es geschätzt werden :)IOS So verankern Sie ein UITextField an einer festen Position

Antwort

2

Sie können dies leicht tun. Der Trick besteht darin, dass Sie einen UIViewController anstelle eines UITableViewControllers verwenden müssen.

Wenn Sie Storyboards verwenden, ziehen Sie zunächst einen UIViewController in den Erstellungsbereich. Ziehen Sie dann ein UITextField auf den View-Controller und positionieren Sie es an der gewünschten Position (d. H. Oben). Als nächstes ziehe einen UITableView (NOT UITableViewController) auf deinen Viewcontroller und setze den Frame der Tabellenansicht so, dass er alle Ansichten des View Controllers abdeckt, mit Ausnahme des Teils der Ansicht, der oben ist wo dein Textfeld ist t möchte blättern). Ziehen Sie dann ein UITableViewCell vom Objektgaumen auf Ihre Tabellenansicht. Im Inspektoren Eigenschaften der Tabelle Ansicht Zelle Identifier-Eigenschaft auf etwas Einzigartigen

Nachdem Sie diese Storyboard-Szene so etwas getan haben aussehen soll („MyCell“ oder was auch immer.):

enter image description here

Als Nächstes müssen Sie die Eigenschaften der Delegierten und Datenquellen für die Tabellenansicht festlegen. Vergessen Sie nicht, dies zu tun. Tun Sie dies, indem Sie bei gedrückter Strg-Taste auf die Tabellenansicht klicken und vom Delegaten und der Datenquelle auf den View-Controller ziehen.

Zuletzt müssen Sie die Tabellen-Datenquellen- und Delegate-Methoden in Ihrer View-Controller-Klasse implementieren. In Ihrem View-Controller-Header-Datei (.h), erklären, dass Sie UITableViewDelegate und UITableViewDataSource wie folgt umsetzen:

@interface MyViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> 

und dann die erforderlichen Methoden in Ihrer View-Controller-Implementierung .m-Datei implementieren. Zumindest müssen Sie tableView:numberOfRowsInSection: und cellForRowAtIndexPath: und wahrscheinlich tableView:didSelectRowAtIndexPath: und möglicherweise andere implementieren.

@implementation MyViewController 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    // return number of rows 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{  
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyCell"]; 

    // set value(s) in your table cell here 

    return cell; 
} 
Verwandte Themen