【问题标题】:Trouble Loading Images in UITableView在 UITableView 中加载图像时遇到问题
【发布时间】:2015-11-15 23:19:02
【问题描述】:

我正在尝试将图像放入我的UITableView。该表设置有自定义子类单元格。在子类中我有网点:

@IBOutlet var titleLabel: UILabel!

`@IBOutlet var pillarIcon: UIImageView!`

在超类中,我为两者创建了一个NSMutableArray

var objects: NSMutableArray! = NSMutableArray()

var imageObjects: NSMutableArray! = NSMutableArray()

我将东西放入viewDidLoad 方法中的数组中每个数组有 4 个项目。

所以当我调用项目时:

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    return self.objects.count
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cell = self.tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! TableViewCell

    cell.titleLabel.text = self.objects.objectAtIndex(indexPath.row) as? String

    cell.pillarIcon.image = self.imageObjects.objectAtIndex(indexPath.row) as? UIImage


    return cell


}

cell.titleLabel.text 项目出现,但 cell.pillarIcon.image 中的图像没有出现在表格中。

我已经为此工作了几个小时,感觉就像在兜圈子。图像文件也已加载到主文件中,所以这不是问题。

提前致谢。

【问题讨论】:

  • 您是否尝试过更具体的数组类型?试试: var objects = [UIImage]() var imageObjects = [String]()
  • 如何在imageObjects 属性中加载图像值?
  • @whyceewhite 我正在像这样加载图像:self.imageObjects.addObject("book.jpg")self.imageObjects.addObject("bookmark.png")
  • 检查 self.imageObjects.objectAtIndex(indexPath.row) as? UIImage 是否返回 nil。如果不是,则问题出在您的自定义表格单元格上。
  • 你可以试试 cell.pillarIcon.image = UIImage(named: "Demo.png").构象。

标签: ios swift uitableview cocoa-touch swift2


【解决方案1】:

确保您的图片已加载到您的Images.xcassets,然后使用UIImage(name:) 方法加载图片。


目前,您正在将图像加载到 imageObjects 数组中,如下所示:

self.imageObjects.addObject("book.jpg")

您没有使用UIImage 加载图像。

一旦您的图片成为项目图片资源 (Images.xcassets) 的一部分,请像这样加载您的图片:

self.imageObjects.addObject(UIImage(named: "book"))

(以上示例假设book是图片资产组的名称。)

请注意,此Adding Image Assets 网页包含有关如何设置图像资产组的说明。

【讨论】:

  • 感谢您提供的信息,我会尝试并回复您。
【解决方案2】:

您似乎加载图像不正确,就像@whyceewhite 在他的回答中所说的那样。

我会尽量让你明白的:

  1. 打开 Assets.xcassets

  1. 将您要使用的所有图像拖放到AppIcon

  2. 以这种方式将图像添加到您的数组中:

imageObjects.addObject(UIImage(named: "whiteboardapp")!)

使用 Assets.xcassets 文件夹中显示的相同名称

【讨论】:

  • 这项工作我实际上正在研究Whyceewhite 的建议,当我们来回走动时。我很感激帮助。快速的问题。看来我可以通过编写imageObjects.addObject(UIImage(name: "book.jpg") !) 来加载图像,这是在不将其放入 Assets.xcassets 的情况下编写的。将其排除在 .xcassets 之外有什么缺点吗?
  • 使用 .xcassets 是处理图像等资产的推荐方式。它具有许多您可以从中受益的功能。你可以在这里查看所有功能developer.apple.com/library/ios/documentation/Xcode/Reference/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-07
  • 1970-01-01
  • 2022-01-02
  • 1970-01-01
  • 1970-01-01
  • 2015-05-05
  • 2020-10-07
相关资源
最近更新 更多