我们如何使用swift在UITableView节头中添加图像?

时间:2015-02-19 07:00:28

标签: ios uitableview swift

在我的willDisplayHeaderView中,我更改了节标题的颜色但是我想在节标题之前添加图像。有帮助吗? 我的willDisplayHeaderView代码是

func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
    let header: UITableViewHeaderFooterView = view as UITableViewHeaderFooterView 
    header.contentView.backgroundColor = UIColor(red: 238/255, green: 168/255, blue: 15/255, alpha: 0.8)
    header.textLabel.textColor = UIColor.whiteColor()
    header.alpha = 1
}

6 个答案:

答案 0 :(得分:8)

您可以设计自己的标题,就像在表格视图中设计自定义单元格一样。 或者你可以像这样添加一个图像:

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {

    var myCustomView: UIImageView
    var myImage: UIImage = UIImage(named: "myImageResource")
    myCustomView.image = myImage

    let header: UITableViewHeaderFooterView = view as UITableViewHeaderFooterView
    header.addSubview(myCustomView)
    return header
}

然后你可以简单地将你的章节标题UILabel添加为另一个子视图。

答案 1 :(得分:8)

只需在viewDidLoad()方法中添加以下代码即可。

    var frame = CGRectMake(0, 0, self.view.frame.size.width, 200)
    var headerImageView = UIImageView(frame: frame)
    var image: UIImage = UIImage(named: "yourImage")!
    headerImageView.image = image
    youTableView.tableHeaderView = headerImageView

答案 2 :(得分:5)

以下是我们如何在UITableView中添加自定义标头。

func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
     let header: UITableViewHeaderFooterView = view as UITableViewHeaderFooterView
     let imageViewGame = UIImageView(frame: CGRectMake(5, 8, 40, 40));
     let image = UIImage(named: "Games.png");
     imageViewGame.image = image;
     header.contentView.addSubview(imageViewGame)
}

答案 3 :(得分:4)

对于Swift 3

  override func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
    let header = view as! UITableViewHeaderFooterView
    header.textLabel?.textColor = UIColor.white
    let headerImage = UIImage(named: "headerBanner.jpg")
    let headerImageView = UIImageView(image: headerImage)
    header.backgroundView = headerImageView
}

答案 4 :(得分:3)

我在我的项目中使用以下方法。

override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? 
{
    let uilbl = UILabel()
    //uilbl.numberOfLines = 0
    //uilbl.lineBreakMode = NSLineBreakMode.ByWordWrapping
    //uilbl.text = "blablabla"
    uilbl.sizeToFit()
    uilbl.backgroundColor =  UIColor(patternImage: UIImage(named: "yr-img-name")!)

    return uilbl
}

答案 5 :(得分:2)

这适用于swift 4

override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    let headerImage: UIImage = UIImage(named: "image")!
    let headerView = UIImageView(image: headerImage)
    return headerView
}