表视图单元格背景视图不断变得更亮更明亮

时间:2016-10-20 03:33:51

标签: iphone xcode swift2

嘿,我有这个奇怪的问题,我在Table View上添加了一个子视图并给它一个背景颜色..当app启动时,Color就像在图像中一样

enter image description here

但是当我向下滚动下边距边缘的单元格稍微亮一点时,当前的单元格就像这样

enter image description here

向后滚动后,第一个单元变得更亮,通过多次滚动,它变为完全白色。

enter image description here

这是表格视图单元格

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


    let cell = tableView.dequeueReusableCellWithIdentifier("newsCell", forIndexPath: indexPath) as! EventsViewCell

    let dict = componentsLoaded[indexPath.row] as! NSDictionary
    cell.eventTitle!.text = (dict["news_headline"] as! String)
    cell.backgroundColor = UIColor.clearColor()
    let date_post = dict["news_date"] as! String
    cell.dateLabel!.text = ConvertDate().convertYourDate(date_post)

    return cell

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



    let height = cell.frame.height
   cell.contentView.backgroundColor = UIColor.clearColor()
    let whiteRoundedView : UIView = UIView(frame: CGRectMake(10, 10, self.view.frame.size.width - 20, height ))

    red = CGColorCreate(CGColorSpaceCreateDeviceRGB(), [1.0, 1.0, 1.0, 0.3])
    whiteRoundedView.layer.backgroundColor = red
    whiteRoundedView.layer.masksToBounds = false
    whiteRoundedView.layer.cornerRadius = 5.0
    cell.contentView.addSubview(whiteRoundedView)
    cell.contentView.sendSubviewToBack(whiteRoundedView)

}

3 个答案:

答案 0 :(得分:2)

你的问题在于WillDisplaycell中的这一行

cell.contentView.addSubview(whiteRoundedView)

此行在每次显示单元格时添加alpha 0.3的白色视图,在上一个视图上方显示多个视图,从而产生更多白色视图外观。

请在创建单元格时添加白色视图,即

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


let cell = tableView.dequeueReusableCellWithIdentifier("newsCell", forIndexPath: indexPath) as! EventsViewCell

let dict = componentsLoaded[indexPath.row] as! NSDictionary
cell.eventTitle!.text = (dict["news_headline"] as! String)
cell.backgroundColor = UIColor.clearColor()
let date_post = dict["news_date"] as! String
cell.dateLabel!.text = ConvertDate().convertYourDate(date_post)

let whiteRoundedView : UIView = cell.viewWithTag(1001/*Your tag*/)
red = CGColorCreate(CGColorSpaceCreateDeviceRGB(), [1.0, 1.0, 1.0, 0.3])
whiteRoundedView.layer.backgroundColor = red
whiteRoundedView.layer.masksToBounds = false
whiteRoundedView.layer.cornerRadius = 5.0

return cell
}

答案 1 :(得分:0)

请将该视图分配到表视图方法的一侧。 你可以在视图中添加这个加载。 然后在单元格的contentView中添加此视图。

它可能有用......

答案 2 :(得分:0)

问题是由于出队问题。每当你在cellForRowAtIndexPath方法中添加一个子视图时,你必须检查视图是否已经添加为SubView,如果它已经被添加,那么你必须删除子视图并重新添加它。