我有一个表格视图,我根据我的json添加了几个单元格。
到目前为止,添加单元格的代码如下所示:
override func viewWillAppear(animated: Bool) {
let frame:CGRect = CGRect(x: 0, y: 90, width: self.view.frame.width, height: self.view.frame.height-90)
self.tableView = UITableView(frame: frame)
self.tableView?.dataSource = self
self.tableView?.delegate = self
self.view.addSubview(self.tableView!)
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.items.count;
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("CELL")
if cell == nil {
cell = UITableViewCell(style: UITableViewCellStyle.Value1, reuseIdentifier: "CELL")
}
let user:JSON = JSON(self.items[indexPath.row])
cell!.textLabel?.text = user["description"].string
var photoURL = "/path/to/my/icon/google.png"
if let data = NSData(contentsOfFile: photoURL)
{
cell!.imageView?.image = UIImage(data: data)
}
return cell!
}
除了我的json中的description
,我还有username
和price
。到目前为止 - 由于我只添加imageView
和description
,因此3个单元格如下所示:
有没有办法对其进行样式设置,以便每个单元看起来与此相似:
(price
和username
在这里是灰色的?)?我怎样才能达到这个效果?
===编辑:
这就是我填充表格的方式:
我从rest webservice获取数据到json:
func getAllUsers() {
RestApiManager.sharedInstance.getUsers { json in
let results = json
for (index: String, subJson: JSON) in results {
let user: AnyObject = JSON.object
self.items.addObject(user)
dispatch_async(dispatch_get_main_queue(),{
self.tableView?.reloadData()
})
}
}
}
我在我的viewWillAppear
函数
答案 0 :(得分:3)
您可以让您的表使用自定义UITableViewCells并根据自己的喜好设置样式。
简而言之,您在Storyboard中创建一个原型单元,它看起来就像您发布的示例,并将其与您创建的元素连接到自定义UITableViewCell类。在cellForRowInIndexPath中,您将返回自定义单元格而不是常规UITableViewCells。
查看本教程了解详情:http://shrikar.com/uitableview-and-uitableviewcell-customization-in-swift/
答案 1 :(得分:2)
现在我们可以将标签和单元格的imageView插入到ExampleTableViewCell中。控制从每个元素拖动到ExampleTableViewCell。
最后一步是使用cellForRowAtIndexPath func配置单元格。记下var单元格。我们现在将其转换为ExampleTableViewCell。一旦我们这样做,我们可以使用ExampleTableViewCell中的出口来设置我们的标签和图像。确保为故事板中的单元格设置resuseIdentifier。如果您对此不熟悉,请发表评论,我可以为此添加说明。
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("reuseIdentifier") as! ExampleTableViewCell
cell.imageDisplay.image = yourImage
cell.descriptionLabel.text = yourDescription
cell.priceLabel.text = yourPrice
cell.usernameLabel.text = yourUsername
return cell
}
答案 2 :(得分:1)
UITableViewCell子类。您可以转到故事板上的TableView并转到其中一个原型并将其设置为自定义类,并将其设置为自定义,然后您可以按住Ctrl键并单击&将出口/操作拖动到UITableViewCell子类的方式与基本视图控制器相同。