我有一张包含一些自定义的表格。
这是我的代码:
import UIKit
class ViewController: UIViewController, UITableViewDelegate {
var exercises : [String] = ["Swimming", "Running", "Weight Lifting", "Biking", "Climbing"]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
//Necessary for basic tableView setup. Defines number of rows in a specific section.
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int{
//Setting the amount of rows to the number of elements in exercises. This function returns that.
tableView.backgroundColor = UIColor.clearColor()
return exercises.count
}
//Necessary for basic tableView setup. Helps us out content for every cell in the index path. Runs = rows
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
tableView.separatorColor = UIColor.clearColor()
//Setting the footer to default so the extra junk does not show
tableView.tableFooterView = UIView()
//This will be returned. This automatically creates a prototype cell
var cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "Cell")
//Setting every cell to the respective item in exercises
cell.textLabel?.text = exercises[indexPath.row]
cell.textLabel?.font = UIFont(name: "Avenir-Light", size: 17)
cell.textLabel?.textColor = UIColor.whiteColor()
cell.textLabel?.textAlignment = .Center
//Border Code
cell.layer.borderWidth = 2.0
cell.layer.borderColor = UIColor.whiteColor().CGColor
//Round Corners
cell.layer.cornerRadius = 20
return cell
}
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
cell.backgroundColor = UIColor.clearColor()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
我希望每个UITableViewCell
之间有一些间距。我已经尝试了以下内容:
更改每行的高度。此选项不起作用,因为我有边框。添加更多高度只会使每一行看起来更大。
将每行转换为一个部分,然后使用heightForHeader in section.
The post。我想避免使用此选项,因为我必须将所有行转换为部分。
在每行中添加透明的UIView。同样,这个选项不起作用,因为我有边框。
还有其他选择吗?
由于
答案 0 :(得分:2)
首先,您应该将tableView相关代码移出tableView:cellForRowAtIndexPath
,最好移至viewDidLoad
:
override func viewDidLoad {
super.viewDidLoad()
tableView.separatorColor = UIColor.clearColor()
tableView.tableFooterView = UIView()
}
其次,UITableViewCells是可重用的对象,因此在需要时它们会被tableView队列出来:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("Cell")
if cell == nil {
cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "Cell")
}
...
}
至于你的问题,你应该在tableView上设置rowHeight
override func viewDidLoad {
super.viewDidLoad()
...
tableView.rowHeight = 100.0
}
或实施tableView:heightForRowAtIndexPath:
代替:
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return 100.0
}
您还应该更新textLabel的边框和角半径值而不是单元格:
//Border Code
cell.textLabel.layer.borderWidth = 2.0
cell.textLabel.layer.borderColor = UIColor.whiteColor().CGColor
//Round Corners
cell.textLabel.layer.cornerRadius = 20
答案 1 :(得分:0)
我尝试了ozgur的方法,但它没有用,因为我的表视图单元格之间有边界。最后,我使用了this post的答案。希望它有所帮助
答案 2 :(得分:0)
您可以通过在单元格内创建一个额外视图来添加间距,该视图包含在顶部和底部之间具有间距的单元格内容。使单元格的背景颜色半透明,它看起来好像单元格在其上方和下方有间距