UITableViewCell Separator disappearing in iOS7

前端 未结 30 766
轮回少年
轮回少年 2020-12-07 08:31

I have some strange issue with UITableView only in iOS 7.

UITableViewCellSeparator disappears above the first row and below the last row. S

30条回答
  •  佛祖请我去吃肉
    2020-12-07 09:24

    As this is still an issue with IOS 8, I will add my solution in Swift. Set the tableview separator line to none. Then add this code to the cellForRowAtIndexPath delegate method. It will add a nice separator. The if statement allows to decide which cells should have a separator.

        var separator:UIView!
        if let s = cell.viewWithTag(1000)
        {
            separator = s
        }
        else
        {
            separator = UIView()
            separator.tag = 1000
            separator.setTranslatesAutoresizingMaskIntoConstraints(false)
            cell.addSubview(separator)
    
            // Swiper constraints
            var leadingConstraint = NSLayoutConstraint(item: separator, attribute: .Leading, relatedBy: .Equal, toItem: cell, attribute: .Leading, multiplier: 1, constant: 15)
            var heightConstraint = NSLayoutConstraint(item: separator, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: 0.5)
            var bottomConstraint = NSLayoutConstraint(item: cell, attribute: .Bottom, relatedBy: .Equal, toItem: separator, attribute: .Bottom, multiplier: 1, constant:0)
            var trailingConstraint = NSLayoutConstraint(item: cell, attribute: .Trailing, relatedBy: .Equal, toItem: separator, attribute: .Trailing, multiplier: 1, constant: 15)
            cell.addConstraints([bottomConstraint, leadingConstraint, heightConstraint, trailingConstraint])
        }
    
        if indexPath.row == 3
        {
            separator.backgroundColor = UIColor.clearColor()
        }
        else
        {
            separator.backgroundColor = UIColor.blackColor()
        }
    

提交回复
热议问题