tableView中的自定义分隔符

时间:2016-09-17 07:39:31

标签: ios swift xcode uitableview separator

我在.jpg中有自己的分隔符,想在TableView中使用它而不是默认的分隔符,但我唯一得到的就是它消失了。

Swift 3.0:

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "musicCell", for: indexPath) as! SongTableViewCell

    let color = UIColor(patternImage: UIImage(named:"Separator.jpg")!)
    let separator = tableView.separatorColor(color)

    tableView.tableFooterView = UIView(frame: .zero)
    tableView.backgroundView = UIImageView(image: UIImage(named: "bckgrd.jpg"))
    cell.backgroundColor = UIColor.clear

    //tableView.separatorStyle = UITableViewCellSeparatorStyle.singleLine
    //tableView.separatorColor = UIColor(patternImage: UIImage(named: "Separator.jpg"))

这是我尝试实施的方法之一。还有其他办法吗?

3 个答案:

答案 0 :(得分:3)

您需要设置分隔符样式,而不仅仅是颜色。将separator style设置为single line并确保您的Separator.jpg图片看起来像单行,并且您正在通过let color = UIColor(patternImage: UIImage(named:"Separator.jpg")!)此声明获得颜色!

你可以设置类似的分隔符样式,

 tableView.separatorStyle = UITableViewCellSeparatorStyle.SingleLine

PS:如果你在模拟器上检查这个,那么以全分辨率(即cmd + 1或模拟器window - > scale - > 100%)检查它,因为有时候实际上没有问题,但由于规模较小,你可以'看到它

更新:

另一种方式:来自界面构建器的Set SeparatorStyle to None或类似的代码,

   tableView.separatorStyle = UITableViewCellSeparatorStyle.None

然后你可以在代码或界面构建器的单元格的内容视图中将seperator image(高度为1像素或2像素的图像视图)添加到底部的单元格,

   let seperatorImageView = UIImageView.init(image: UIImage.init(named: "yourseperatorimg.jpg"))
    seperatorImageView.frame = CGRectMake(0, cell.contentView.frame.size.height - 1.0,  cell.contentView.frame.size.width, 1)
    cell.contentView.addSubview(seperatorImageView)

答案 1 :(得分:0)

viewDidLoad方法...

上设置分隔符颜色
override func viewDidLoad() {

    super.viewDidLoad()
    let color = UIColor(patternImage: UIImage(named:"Separator.jpg")!)
    tableView.separatorColor = color
}

enter image description here

答案 2 :(得分:0)

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
    let color = UIColor(patternImage: UIImage(named:"Separator.jpg")!)
    tblView.separatorColor = color
}