删除Tableview Swift中Header View Section的白色边框底部

时间:2018-04-30 20:59:52

标签: ios swift

我将Storyboard中的分隔符样式删除为无,但仍显示标题视图底部的1px白色边框。 我试图将viewdidload上的分隔符样式设置为none,并尝试使用一些扩展来移除子视图但仍然无效。

我使用单元格在标题视图中出列并为其设置高度。 这是我的代码:

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        // #warning Incomplete implementation, return the number of rows
        switch section {
        case 0:
            return 1
        case 1:
            return 1
        case 2:
            return 1
        case 3:
            return 1
        case 4:
            return 1
        case 5:
            return 1
        case 6:
            return 1
        default:
            return 1
        }
    }

    // MARK: - View For Header

    override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        switch section {
        case 2:

            let cell = tableView.dequeueReusableCell(withIdentifier: "NewProductHeaderTableViewCell") as! NewProductHeaderTableViewCell
            tableView.separatorStyle = UITableViewCellSeparatorStyle.none
            cell.titleLabel.text = "Produktet e reja"
            return cell
        case 3:
            let cell = tableView.dequeueReusableCell(withIdentifier: "NewProductHeaderTableViewCell") as! NewProductHeaderTableViewCell
            cell.titleLabel.text = "Top Produktet"
            return cell
        case 4:
            let cell = tableView.dequeueReusableCell(withIdentifier: "NewProductHeaderTableViewCell") as! NewProductHeaderTableViewCell
            cell.titleLabel.text = "Me te shiturat"
            return cell
        default:
            return nil
        }
    }

    // MARK: - Height For Header

    override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        switch section {
        case 2:
            return 46.0
        case 3:
            return 46.0
        case 4:
            return 46.0
        default:
            return 0.1
        }
    }

    override func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
        return 0
    }

    // MARK: - Height For Row

    override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        switch indexPath.section {
        case 0:
            return 90
        case 1:
            return UITableViewAutomaticDimension
        case 2:
            return 177
        case 3:
            return 177
        case 4:
            return UITableViewAutomaticDimension
        case 5:
            return 90
        case 6:
            return 90
        default:
            return 90
        }
    }

    // MARK: - Cell For Row

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        switch indexPath.section {
        case 0:
            let cell = tableView.dequeueReusableCell(withIdentifier: "StoryTableViewCell", for: indexPath) as! StoryTableViewCell
            return cell
        case 1:
            return UITableViewCell()
        case 2:
            let cell = tableView.dequeueReusableCell(withIdentifier: "NewProductTableViewCell", for: indexPath) as! NewProductTableViewCell
            return cell
        case 3:
            let cell = tableView.dequeueReusableCell(withIdentifier: "NewProductTableViewCell", for: indexPath) as! NewProductTableViewCell
            return cell
        case 4:
            return UITableViewCell()
        case 5:
            return UITableViewCell()
        case 6:
            return UITableViewCell()
        default:
            return UITableViewCell()
        }

    }

enter image description here

2 个答案:

答案 0 :(得分:0)

试试这个:

cell.separatorInset = UIEdgeInsetsZero
cell.layoutMargins = UIEdgeInsetsZero

答案 1 :(得分:0)

尝试使用此

   override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    switch section {
    case 2:

        let cell = tableView.dequeueReusableCell(withIdentifier: "NewProductHeaderTableViewCell") as! NewProductHeaderTableViewCell
        tableView.separatorStyle = UITableViewCellSeparatorStyle.none
        cell.titleLabel.text = "Produktet e reja"
        return cell
    case 3:
        let cell = tableView.dequeueReusableCell(withIdentifier: "NewProductHeaderTableViewCell") as! NewProductHeaderTableViewCell
        cell.titleLabel.text = "Top Produktet"
        return cell
    case 4:
        let cell = tableView.dequeueReusableCell(withIdentifier: "NewProductHeaderTableViewCell") as! NewProductHeaderTableViewCell
        cell.titleLabel.text = "Me te shiturat"
        return cell
    default:
        let view = UIView(frame: .zero)
        view.backgroundColor = .clear
        return view
    }
}