4

我需要在 swift 2.1 中添加填充,以便在每个部分的每个单元格之间添加空间

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

如何在动态表格单元格之间添加空格?

这是添加标题的代码:

    // 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
    }

这是创建表视图代码:

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
    }

现在我的表格视图如下所示:

在此处输入图像描述

更新代码和表格视图:

在此处输入图像描述

4

6 回答 6

6

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

您可以使用的选项是...

  1. 请改用集合视图。让它看起来像一个表格视图相对容易。使用它,您可以使用项目间间距。

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

于 2016-01-05T09:45:05.797 回答
2

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

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
}
于 2016-01-05T09:44:17.060 回答
1

您可以使用 HeightForRowAtIndexPath 或在尺寸检查器下更改 tableView Xib 中的“行高”...

或者您可以查看此链接以获取objective-c: https ://stackoverflow.com/a/14726457/4489420 ...在此它将根据您的数组计数创建部分...

于 2016-01-05T10:04:25.033 回答
0

有2种方法可以增加高度

  1. 在情节提要中选择您的 tableview 并在尺寸检查器中设置 rowHeight(更适合您实现)

  2. 在您的视图控制器中添加此功能

    func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat 
     { return 35;//Whatever height you want...}
    
于 2016-01-05T09:51:37.207 回答
0

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

于 2016-01-05T10:19:00.920 回答
0

表格视图单元格在设计上是连续的:两个连续的单元格之间没有“空格”;只有 1 点粗的分隔线(您可以取消它)。

  • 可以在每个单元格内添加“填充”(=内部空间)(即,使它们更高 - 请参阅其他答案),但是
  • 不能在它们之间添加“边距”(=外部空间)(这会给你每个单元格之间的两个分隔符,也许......?)。

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

于 2016-01-05T10:36:35.900 回答