试图在桌面视图上获取全尺寸单元格图像

时间:2015-05-17 15:06:47

标签: ios uitableview swift

所以我通过使用常规图像视图和按钮来实现这一点:

enter image description here

但是现在我希望它随着用户滚动而反弹,关于如何实现这一目标的任何想法?我尝试过使用表格视图,但我无法弄清楚如何将图像作为背景。使用表格视图和我使用的当前方法之间的任何好处?这对我来说是一次学习经历,而这正是项目的重点。任何帮助将不胜感激,提前谢谢。

1 个答案:

答案 0 :(得分:0)

以下是实现目标的一种方法(相应地更改图像名称)

cell.contentView.backgroundColor = UIColor(patternImage: UIImage(named: "NewYork")!)

例如:

override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {

    switch indexPath.row{
    case 0:
        cell.contentView.backgroundColor = UIColor(patternImage: UIImage(named: "NewYork")!)
    case 1:
        cell.contentView.backgroundColor = UIColor(patternImage: UIImage(named: "LA")!)
    case 2:
        cell.contentView.backgroundColor = UIColor(patternImage: UIImage(named: "Miami")!)
    default:
        cell.contentView.backgroundColor = UIColor(patternImage: UIImage(named: "default")!)
    }
}

你也可以用同样的方式在cellForRowAtIndexPath内设置它。

这样做的缺点是图像要么需要重复图案,要么完全适合单元尺寸,对于不同尺寸的设备来说,这种图像不是很灵活。

另一种选择是使用自定义表格单元格并创建与单元格大小相同的UIImageView。 Here is a tutorial link描述了如何创建自定义单元格。现在,您只需在cellForRowAtIndexPath中设置与此类似的图像:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
  let cell = tableView.dequeueReusableCellWithIdentifier("MyCustomCell", forIndexPath: indexPath) as! CustomTableViewCell

  switch indexPath.row{
    case 0:
        cell.img_Thumbnail?.image = UIImage(named: "NewYork")
    case 1:
        cell.img_Thumbnail?.image = UIImage(named: "LA")
    case 2:
        cell.img_Thumbnail?.image = UIImage(named: "Miami")
    default:
        cell.img_Thumbnail?.image = UIImage(named: "default")
    }

  return cell
}