在 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 视图中的单元格之间没有间距。仅在集合视图中。
您可用的选项是...
改为使用集合视图。使其看起来像 table 视图相对容易。使用这个你可以使用项目间间距。
将单元格的高度增加 2 个像素,并在每个单元格的顶部或底部添加一个空白区域。这会给他们之间添加 space 的错觉。
增加高度的方法有2种
在情节提要中 select 你在 size inspector
[ 中设置 rowHeight(哪个更适合你实现) =22=]
在您的 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。
我需要在 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 视图中的单元格之间没有间距。仅在集合视图中。
您可用的选项是...
改为使用集合视图。使其看起来像 table 视图相对容易。使用这个你可以使用项目间间距。
将单元格的高度增加 2 个像素,并在每个单元格的顶部或底部添加一个空白区域。这会给他们之间添加 space 的错觉。
增加高度的方法有2种
在情节提要中 select 你在 size inspector
[ 中设置 rowHeight(哪个更适合你实现) =22=]在您的 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。