我似乎无法在我的tableview中使用标题填充我的单元格。我将我的tableview放在我的viewcontroller中并将其嵌入到嵌入在标签栏视图控制器中的导航控制器中。 tableview加载但单元格没有标题。我不确定我做错了什么。
import Foundation
import UIKit
class ThirdViewController: UIViewController {
let tableData = ["One","Two","Three"]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
navigationController?.navigationBar.barTintColor = hexStringToUIColor(hex: "#00a5ff")
navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white, NSFontAttributeName: UIFont(name: "Futura", size: 25)!]
self.title = "Interests"
}
func tableView(_ tableView: UITableView!, numberOfRowsInSection section: Int) -> Int
{
return tableData.count
}
func tableView(_ tableView: UITableView!,
cellForRowAtIndexPath indexPath: IndexPath!) -> UITableViewCell!
{
let cell:UITableViewCell = UITableViewCell(style:UITableViewCellStyle.default, reuseIdentifier:"Cell")
cell.textLabel?.text = tableData[indexPath.row]
return cell
}
func hexStringToUIColor (hex:String) -> UIColor {
var cString:String = hex.trimmingCharacters(in: .whitespacesAndNewlines).uppercased()
if (cString.hasPrefix("#")) {
cString.remove(at: cString.startIndex)
}
if ((cString.characters.count) != 6) {
return UIColor.gray
}
var rgbValue:UInt32 = 0
Scanner(string: cString).scanHexInt32(&rgbValue)
return UIColor(
red: CGFloat((rgbValue & 0xFF0000) >> 16) / 255.0,
green: CGFloat((rgbValue & 0x00FF00) >> 8) / 255.0,
blue: CGFloat(rgbValue & 0x0000FF) / 255.0,
alpha: CGFloat(1.0)
)
}
}
答案 0 :(得分:2)
您需要将视图控制器设置为数据源,并在表视图上调用reloadData。
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
navigationController?.navigationBar.barTintColor = hexStringToUIColor(hex: "#00a5ff")
navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white, NSFontAttributeName: UIFont(name: "Futura", size: 25)!]
self.title = "Interests"
yourTableView.dataSource = self
yourTableView.reloadData()
}
答案 1 :(得分:1)
UITableView属性在哪里? 你需要声明
@IBOutlet weak var tableView: UITableView!
并将其连接到storyboard(或.xib文件)上的表视图
您需要采用两种表格视图协议。
UITableViewDatasource
和UITableViewDelegate
将ViewController设置为委托
tableView.delagate = self
tableView.datasource = self
如上所述,您需要实施
func numberOfSections
数据源所需方法。
一切都应该有效。如果没有,请阅读一下UITableView。
因为我发现你不是在cellForRowAtIndexPath
方法上出列单元格。
此致
答案 2 :(得分:0)
你还需要实现" numberOfSections" dataSource方法:
func numberOfSections(in tableView: UITableView) -> Int
{
return 1
}
除此之外,您需要将ThirdViewController类标记为UITableViewDataSource,并将tableView的dataSource属性设置为self:
ThirdViewController: UIViewController, UITableViewDataSource
{
override func viewDidLoad() {
super.viewDidLoad()
........
yourTableView.dataSource = self
}