Swift - UITableView définir le séparateur de style
Comment puis-je définir le Séparateur de Style de mon UITableView dans Swift? Je veux me débarrasser de la séparation, de sorte qu'il n'y a pas de ligne grise entre les cellules de mon tableau. Toutes les suggestions sont grandement appréciés.Ci-dessous est ce que j'ai déjà essayé.
J'ai trouvé cette méthode en objective-C
[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone]
J'ai essayé de mon mieux pour traduire cette swift avec
self.tableView.setSeparatorStyle = UITableViewCellSeparatorStyle.None
Mais cela présente l'erreur
'(UITableView, numberOfRowsInSection: Int) -> Int' does not have a member named 'setSeparatorStyle'
Dans la documentation d'apple, il donne à ces déclarations en objective-C
typedef enum : NSInteger {
UITableViewCellSeparatorStyleNone ,
UITableViewCellSeparatorStyleSingleLine ,
UITableViewCellSeparatorStyleSingleLineEtched
} UITableViewCellSeparatorStyle;
Donc j'ai essayé de nouveau de le traduire rapidement à l'aide de
override func tableView(tableView: UITableView, setSeparatorStyle style: NSInteger) -> NSInteger {
return UITableViewCellSeparatorStyleNone
}
Mais cela génère plus d'erreurs, "l'Utilisation de suspens identificateur 'UITableViewCellSeparatorStyleNone"
Vous devez vous connecter pour publier un commentaire.
Pour expliquer pourquoi vous ne pouvez pas appeler
setSeparatorStyle
dans Swift, j'ai besoin d'expliquer d'où cette méthode vient de l'Objective-C. Si vous rechercher dans l'en-tête (UITableView.h
), vous ne le trouverez pas. La seule chose est déclaré ceci:setSeparatorStyle
est le setter généré automatiquement pour une propriété en Objective-C. disons que vous déclarez une propriété Objective-C, comme ceci:Objective-C génère automatiquement un setter et getter méthode pour cette propriété, avec de la lecture étant le nom de la propriété, et le setter étant le nom avec
set
de préfixe.De sorte que vous pouvez appeler de la lecture comme ceci:
[object someProperty]
Et vous pouvez définir la propriété comme ceci:
[object setSomeProperty:newValue]
Maintenant, c'est génial, mais il y a une façon plus simple d'appeler le setter et getter, à savoir la syntaxe à point, qui ressemble à ceci:
object.someProperty = newValue; //setter
Et de la lecture:
object.someProperty //getter
Maintenant dans Swift, ce implicite génération d'un setter dans ce
setSomeProperty
façon n'existe plus. Il avait toujours été un bizarre caprice d'Objective-C, Swift introduit une méthode unifiée pour définir et obtenir des propriétés. Dans Swift, il n'y a qu'une façon de définir et d'obtenir les propriétés et c'est à l'aide de la syntaxe à point, qui est identique à la syntaxe à point en Objective-C.Donc, pour réellement répondre à votre question, vous devez supprimer le
set
partie danssetSeparatorStyle
, et ce serait votre nouveau code:Habituellement, vous n'avez pas à écrire
self
, Swift est suffisamment intelligent pour se rendre compte que vous souhaitez utiliserself.tableView
si il n'y a qu'une variable nomméetableView
dans le champ d'application, donc vous pouvez écrireEt Swift est même assez intelligent pour réaliser que ce qui vient après que l'opérateur d'affectation (le signe égal,
=
) est probablement un séparateur de style, de sorte que vous pouvez simplement écrire.None
.Pour ceux qui sont à la recherche de Swift 2 et 3 de la notation :
J'ai utilisé :
Coup d'oeil sous le:
Attributes inspector > table view > separator
Cela devrait vous aider à changer le séparateur de style ou de le supprimer complètement