2010-02-16 12 views

Antwort

9
  1. Gehen Sie zum iPhone Interface Guidelines Page.

  2. Unter "Standardschaltflächen für Tabellenzeilen und andere Elemente der Benutzeroberfläche" Kopieren Sie die ContactAdd-Schaltfläche (ich speichere es als ContactAdd.png hier). Fügen Sie es Ihrem Projekt hinzu.

  3. Im cellForRowAtIndexPath: (NSIndexPath *) indexPath Methode add:

    UIImage *image = [UIImage imageNamed:@"ContactAdd.png"]; 
    
    
    
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
    //You can also Use: 
    //UIButton *button = [UIButton buttonWithType:UIButtonTypeContactAdd]; 
    
    CGRect frame = CGRectMake(0.0, 0.0, image.size.width, image.size.height); 
    
    //match the button's size with the image size 
    button.frame = frame; 
    
    [button setBackgroundImage:image forState:UIControlStateNormal]; 
    
    // set the button's target to this table view controller so you can open the next view 
    [button addTarget:self action:@selector(yourFunctionToNextView:) forControlEvents:UIControlEventTouchUpInside]; 
    
    button.backgroundColor = [UIColor clearColor]; 
    
    cell.accessoryView = button; 
    
+12

* HINWEIS: Anstatt zu kopieren und hinzuzufügen, können Sie auch Folgendes verwenden: [UIButton buttonWithType: UIButtonTypeContactAdd]; anstelle von UIButtonTypeCustom. – erastusnjuki

+1

der schwierige Teil bei der Durchführung dieser beiden ist die Übergabe von Parametern an yourFunctionToNextView: um zu wissen, welche Zeile gedrückt wurde. Dies kann einfach mit button.tag = row; aber wenn Sie Abschnitte in Ihrer Tabelle haben, ist ein einzelner Int nicht gut genug. Sie müssen indexPath übergeben. Ich habe diese Methode hier gefunden, um so etwas zu tun. http://stackoverflow.com/questions/5500327/subclass-uibutton-to-add-a-property – roocell

+0

Ja, den Parameter übergeben ist der schwierige Teil. Ihre Verknüpfung ist fast vollständig, außer dass Sie nicht erfahren, wie Sie die Eigenschaft übergeben, die Sie der UIButton-Klasse hinzufügen. Um diesen Gedanken zu vervollständigen, wird der Parameter nur übergeben, wenn Sie das ":" hinter "yourFunctionToNextView:" im Selektor einfügen. Also würde das obige Beispiel um button.property = indexPath erweitert werden. Dann wäre die Definition des Selektors: - (void) yourFunctionToNextView: (UIButton *) sender {}. Dann können Sie innerhalb dieser Methode etwas wie NSIndexPath * indexPath = sender.property; wo property ist der indexPfad. – JeffB6688

27

Wenn Sie eine Navigationsleiste haben, sollten Sie eine UIBarButtonItem wie folgt hinzu:

UIBarButtonItem *addButton = [[UIBarButtonItem alloc]  
    initWithBarButtonSystemItem:UIBarButtonSystemItemAdd 
    target:self action:@selector(addButtonPressed:)]; 
self.navigationItem.rightBarButtonItem = addButton; 
+0

Danke. Half mir. Upvote für dich. – DrinkJavaCodeJava

2

Für Swift

let addButton = UIBarButtonItem.init(barButtonSystemItem: .Add, 
            target: self, 
            action: #selector(yourFunction)) 
self.navigationItem.rightBarButtonItem = addButton 
Verwandte Themen