ImageView在可重用的TableViewCell上不显示

时间:2015-01-29 07:12:54

标签: objective-c swift

我在TableView上创建了TableViewCellViewController。单元格将可重复使用(从数据库导入名称+照片)。 目前只显示名称单元格文字。

如何让图像显示在单元格文本(名称)上方。或者我需要创建一个单独的单元子类吗?试图做这样的事情: enter image description here

故事板设置

enter image description here

更新

在故事板中添加了ImageView(在单元格内),并为FeedCell.swift添加了一个出口:

@IBOutlet weak var setImage: UIImageView!

添加到ViewController' ViewDidLoad

self.tableView.registerClass(FeedCell.self, forCellReuseIdentifier: "RestaurantCell")

更新了ViewControllers cellForRowAtIndexPath

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("RestaurantCell", forIndexPath: indexPath) as UITableViewCell
    var imageSet: PFObject?{
        didSet{
            self.fetchImage(restaurantArray[indexPath.row] as? PFObject, completionHandler: {
                (image, error) -> () in
                if image != nil {
                    FeedCell().setImage.image = image
                    cell.imageView?.image = image!
                    cell.imageView?.image = image
                    cell.accessoryView = UIImageView()
                }else{
                    //alert user: no image or put placeholder image
                }
            })
        }
    }
    return cell
}

1 个答案:

答案 0 :(得分:0)

您有一个“RestaurantCell”,但是从您的问题中包含的故事板截图中,它看起来只是一个内容空白的完全空白的单元格。

如果您不想创建自定义UITableViewCell,则应将原型RestaurantCell更改为同时具有居中图像和位于其下方的标签,这两者都通过具有使用它们设置的唯一标记的属性公开。然后,当设置属性时,您可以更新与标记对应的视图(例如,视图#1可能是图像,视图#2可能是名称等)。

或者,您可以简单地继承UITableViewCell,然后您就可以使用IBOutlets,与使用手动属性设置器和标签相比,它将更加清晰。

然后您可以轻松设置图像和标签文本,它应该在Munchery应用程序中显示得非常漂亮。

您可能还想包含额外的IBOutlets以设置Chef的imageView(Chef Alex是我的最爱之一)和购物车按钮(“+ Add”,我认为它与“In The Bag”交换?)。

已编辑为更具体

摆脱“FeedCell().setImage.image = image”。这没什么好处的。

更改

 let cell = tableView.dequeueReusableCellWithIdentifier("RestaurantCell", forIndexPath: indexPath) as UITableViewCell

为:

 let cell = tableView.dequeueReusableCellWithIdentifier("RestaurantCell", forIndexPath: indexPath) as FeedCell

此外,FeedCell中的IBOutlet是连接到imageView还是其他名称的出口?