Swift – UITableView设置分隔符样式

如何在Swift中设置我的UITableView的分隔符样式? 我想摆脱分隔符,以便我的表格视图中的单元格之间没有灰线。 任何build议将不胜感激。以下是我已经尝试过。

我在Objective-C中find了这个方法

[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone] 

我尽我所能翻译这个迅速与

 self.tableView.setSeparatorStyle = UITableViewCellSeparatorStyle.None 

但是这提出了错误

 '(UITableView, numberOfRowsInSection: Int) -> Int' does not have a member named 'setSeparatorStyle' 

在苹果文档中,它提供了Objective-C中的这些声明

 typedef enum : NSInteger { UITableViewCellSeparatorStyleNone , UITableViewCellSeparatorStyleSingleLine , UITableViewCellSeparatorStyleSingleLineEtched } UITableViewCellSeparatorStyle; 

所以我又试着把它翻译成Swift使用

  override func tableView(tableView: UITableView, setSeparatorStyle style: NSInteger) -> NSInteger { return UITableViewCellSeparatorStyleNone } 

但是这只是抛出了更多的错误,“使用未parsing的标识符”UITableViewCellSeparatorStyleNone“

为了解释为什么你不能在Swift中调用setSeparatorStyle ,我需要解释Objective-C中的方法来自哪里。 如果您在标题( UITableView.h )中search它,您将无法find它。 唯一宣布的是这样的:

 @property (nonatomic) UITableViewCellSeparatorStyle separatorStyle; 

setSeparatorStyle是为Objective-C中的属性自动生成的setter。 假设你在Objective-C中声明一个属性,如下所示:

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

Objective-C将自动为该属性生成一个setter和getter方法,其中getter是getter的名字,setter是带有前缀的名字。

所以你可以这样调用getter:

[object someProperty]

你可以像这样设置属性: [object setSomeProperty:newValue]

现在,这很好,但是有一个简短的方法来调用setter和getter,即dot语法 ,如下所示:

object.someproperty = newValue; // setter

而吸气剂:

object.someproperty // getter

现在在Swift中,这种以setSomePropety方式隐式生成setter的方法已经不存在了。 它一直是Objective-C的一个奇怪的怪癖,所以Swift引入了一个统一的方法来设置和获取属性。 在Swift中,只有一种设置和获取属性的方法,它使用点语法 ,这与Objective-C中的点语法是一样的。

所以要真正回答你的问题,你需要删除setSeparatorStyle中的set部分,这将是你的新代码:

 self.tableview.separatorStyle = UITableViewCellSeparatorStyle.none 

通常你不必自己写self ,Swift是足够聪明的,以实现你想要使用self.tableView如果只有一个名为tableViewvariables范围,所以你可以写

 tableview.separatorStyle = UITableViewCellSeparatorStyle.none 

Swift甚至足够聪明地认识到赋值运算符(等号, = )后面可能是分隔符风格,所以你可以写.none

 tableview.separatorStyle = .none 

对于那些正在寻找Swift 2和3符号的人来说:

 tableView.separatorStyle = UITableViewCellSeparatorStyle.None; 

看下:

Attributes inspector > table view > separator这应该帮助您更改分隔符样式或完全删除它

我用了 :

 tableview.separatorStyle = .None