addSubview not working after converting

130 views Asked by At

I upgraded xcode from 7.3.1 to 8 and converted to swift 2.2, other than the storyboard being a mess everything worked except adding a UIView programatically.

This was working fine before, now nothing shows up at all and there are no errors. Any ideas?

override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    //create view
    let vw = UIView()
    vw.backgroundColor = UIColor(red: 0.9137, green: 0.9176, blue: 0.9216, alpha: 1.0) /* #e9eaeb */

    //create label inside view
    let label: UILabel = UILabel()
    label.frame =  CGRectMake(0, 0, 200, 28)
    label.textAlignment = NSTextAlignment.Left
    label.textColor = UIColor.grayColor()
    label.font = label.font.fontWithSize(13)

    if !clearSearch {
        label.text = "  Recent Searches"
    } else {
        label.text = "  Search Results"
    }
    vw.addSubview(label)

    //create button inside view
    let button: UIButton = UIButton()
    button.frame = CGRectMake(self.view.frame.size.width - 45, 0, 40, 28)
    button.titleLabel?.font = UIFont.systemFontOfSize(13)
    button.setTitle("Clear", forState: UIControlState.Normal)
    button.addTarget(self, action: #selector(deleteSearches), forControlEvents: UIControlEvents.TouchUpInside)
    button.setTitleColor(UIColor(red: 0.3216, green: 0.7176, blue: 0.5333, alpha: 1.0), forState: UIControlState.Normal)
    vw.addSubview(button)

    return vw
}

Thanks for any help.

1

There are 1 answers

0
Keith On

Looks like this is now required.

override func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    return 28
}