在 swift 2 中的一个部分的单元格之间添加 space

Adding space between cells in a section in swift 2

我需要在 swift 2.1

的每个部分的每个单元格之间添加填充 space

但我所做的只是为我不想要的部分添加 header。

如何在动态 table 单元格之间添加 space?

这里是添加header的代码:

    // Set the spacing between sections
    override func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        return 10
    }

    override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        let header = UIView()
        header.backgroundColor = UIColor.clearColor()
        return header
    }

这里正在创建table查看代码:

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 1
}


override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return self.tableData.count
}


override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell  {

    //Table view cells are reused and should be dequeued using a cell identifier.
    let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)

    let rowData = self.tableData[indexPath.row]

    cell.textLabel!.text = rowData.name
    cell.textLabel!.textAlignment = .Right


    if let url  = NSURL(string: rowData.img),
        data = NSData(contentsOfURL: url)
    {
        cell.imageView?.image = UIImage(data: data)
    }



    return cell
    }

现在我的 table 视图是这样的:

更新代码和 table 视图:

您应该只设置单元格高度:

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
{
   return 100 //cell height
}

更新:

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
{
   if indexPath.row % 2 == 0
   {
      return 100 //cell height
   }
   else
   {
      return 5 //space heigh
   }
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell  {

    //Table view cells are reused and should be dequeued using a cell identifier.
    let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)

    if indexPath.row % 2 == 0
    {
        let rowData = self.tableData[indexPath.row/2]

        cell.textLabel!.text = rowData.name
        cell.textLabel!.textAlignment = .Right

        if let url  = NSURL(string: rowData.img),
            data = NSData(contentsOfURL: url)
        {
            cell.imageView?.image = UIImage(data: data)
        }
        else
        {
            cell.imageView?.image = nil
        }
    }
    else
    {
        cell.textLabel!.text = nil
        cell.imageView?.image = nil
    }
    return cell
}

table 视图中的单元格之间没有间距。仅在集合视图中。

您可用的选项是...

  1. 改为使用集合视图。使其看起来像 table 视图相对容易。使用这个你可以使用项目间间距。

  2. 将单元格的高度增加 2 个像素,并在每个单元格的顶部或底部添加一个空白区域。这会给他们之间添加 space 的错觉。

增加高度的方法有2种

  1. 在情节提要中 select 你在 size inspector

    [ 中设置 rowHeight(哪个更适合你实现) =22=]
  2. 在您的 viewController

    中添加此功能
    func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat 
     { return 35;//Whatever height you want...}
    

您可以使用 HeightForRowAtIndexPath 或在尺寸检查器下的 tableView Xib 中更改 "row height"...

或者您可以检查link objective-c:...在此它将根据您的数组计数创建部分...

如果您使用的是动态高度,请勾选此项...https://www.facebook.com/iOSApplicationDevelopers/posts/1297809426911662

Table view cells 在设计上是连续的:两个连续的单元格之间没有 "space";只有 1 点粗的分隔线(您可以取消)。

  • 可以在每个单元格内添加"padding"(=内部space)(即,使它们更高 - 查看其他答案),但是
  • 不能在它们之间添加"margin"(=外部space)(那会给你每个单元格之间有两个分隔符,也许...?)。

集合视图单元格,另一方面,确实允许单元格之间有额外的space。