Tableviewcell不会更改背景图像

时间:2015-08-28 03:08:05

标签: ios swift uitableview

请注意此代码。

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("commentCell", forIndexPath: indexPath) as! CommentTableViewCell
    cell.commentText?.text = comments![indexPath.row]
    if let objectId = yak?["user"].objectId {
        let commentor = commentorIds[indexPath.row]
        if commentor == objectId {
            cell.commentText.textColor = UIColor(red: 136.0/255, green: 135.0/255, blue: 134.0/255, alpha: 1)
            let image = UIImage(named: "eh")
            cell.backgroundView = UIImageView(image: image?.resizableImageWithCapInsets(UIEdgeInsets(top: 20, left: 20, bottom: 50, right: 50)))
        } else {
            cell.commentText.textColor = UIColor.whiteColor()
            let image = UIImage(named: "whatsthatnow")
            cell.backgroundView = UIImageView(image: image?.resizableImageWithCapInsets(UIEdgeInsets(top: 20, left: 20, bottom: 20, right: 100)))
        }
    }
    cell.layoutMargins = UIEdgeInsetsZero
    //cell.backgroundView = UIImageView(image: UIImage(named: "goodbg"))
    return cell
}

然而,对于特定的视图控制器,这非常有效。请注意此代码段。

func tableViewOld(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!, object: PFObject!) -> UITableViewCell! {

    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! TableViewCell
    let image = UIImage(named: "eh")
    cell.backgroundView = UIImageView(image: image?.resizableImageWithCapInsets(UIEdgeInsets(top: 20, left: 20, bottom: 50, right: 50)))

这个相同的代码在某个原因上不能用于另一个单元格。我似乎无法找到理由,所以我希望你们中的一个人能发现一些我不能发现的东西。

1 个答案:

答案 0 :(得分:0)

检查UITableViewCell的.h文件。我发现了这个。

UITableViewStylePlain中的单元格的默认值为nil,UITableViewStyleGrouped的单位格式的默认值为nil。 backgroundView将作为子视图添加到所有其他视图后面。

@property (nonatomic, retain) UIView *backgroundView;

通常情况下,我们不做任何建议:

  1. 向Cell添加ImageView
  2. ImageView的框架设为cell.contentView.bounds
  3. 控制自己的行为。
  4. 做你想做的事!