Swift - UITableView set separator style

前端 未结 5 1173
别跟我提以往
别跟我提以往 2021-02-04 07:53

How do i set the Separator Style of my UITableView in Swift? I want to get rid of the separator so that there is no grey line between the cells in my table view. Any suggestions

相关标签:
5条回答
  • 2021-02-04 08:43

    I used :

    tableview.separatorStyle = .None
    
    0 讨论(0)
  • 2021-02-04 08:50

    To explain why you can't call setSeparatorStyle in Swift, I need to explain where that method comes from in Objective-C. If you search for it in the header (UITableView.h) you won't find it. The only thing declared is this:

    @property (nonatomic) UITableViewCellSeparatorStyle separatorStyle;
    

    setSeparatorStyle is the setter automatically generated for a property in Objective-C. Let's say you declare a property in Objective-C, like this:

    @interface SomeClass: NSObject
    
    @property (nonatomic) id someProperty;
    
    @end
    

    Objective-C will automatically generate a setter and getter method for that property, with the getter being the name of the property, and the setter being the name with set prefixed.

    So you can call the getter like this:

    [object someProperty]

    And you can set the property like this: [object setSomeProperty:newValue]

    Now, that's all great, but there's a shorter way to call the setter and getter, namely dot syntax, which looks like this:

    object.someProperty = newValue; // setter

    And the getter:

    object.someProperty // getter

    Now in Swift, this implicit generation of a setter in this setSomeProperty way doesn't exist anymore. It had always been a weird quirk of Objective-C, so Swift introduces a unified way to set and get properties. In Swift, there's only one way to set and get properties and it's using dot syntax, which is identical to the dot syntax in Objective-C.

    So to actually answer your question, you need to remove the set part in setSeparatorStyle, and this would be your new code:

    self.tableview.separatorStyle = UITableViewCellSeparatorStyle.None
    

    Usually you don't have to write self, Swift is smart enough to realize you want to use self.tableView if there's only one variable named tableView in scope, so you can write

    tableview.separatorStyle = UITableViewCellSeparatorStyle.None
    

    And Swift is even smart enough to realize that what comes after the assignment operator (the equals sign, =) is probably a separator style, so you can just write .None.

    tableview.separatorStyle = .None
    
    0 讨论(0)
  • 2021-02-04 08:55

    Look under the:

    Attributes inspector > table view > separator This should help you change the separator style or remove it completely

    0 讨论(0)
  • 2021-02-04 08:56

    For those who are looking for Swift 2 and 3 notation :

    tableView.separatorStyle = UITableViewCellSeparatorStyle.None;
    
    0 讨论(0)
  • 2021-02-04 08:58

    In Swift 5

    tableview.separatorStyle = UITableViewCell.SeparatorStyle.none
    
    0 讨论(0)
提交回复
热议问题