2017-01-01 3 views
0

Я обновил xcode с 7.3.1 до 8 и преобразовал в swift 2.2, кроме раскадровки, которая была бесполезной, все работало, за исключением добавления UIView программно.addSubview не работает после преобразования

Это работало нормально раньше, теперь ничего не появляется вообще, и ошибок нет. Есть идеи?

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 
} 

Благодарим за любую помощь.

+0

Все это выглядит нормально. Вы должны убедиться, что vw не равен нулю в операторе return (он должен быть), а затем проверьте, что происходит в вызывающем коде. Я подозреваю, что проблема есть. Вы также можете попробовать использовать инструмент «Отладка-> Просмотр отладки-> Capture View Hierarchy», чтобы узнать, что происходит. –

+0

Эй, спасибо за быстрый ответ. Да, похоже, что этот функциональный блок даже больше не называется, очень странно, я ничего не менял. Я также пробовал отлаживать, как вы предлагали, и он тоже не появляется. – user3712837

+0

Выяснилось, вам нужна высотаForHeaderInSection. – user3712837

ответ

0

Похоже, теперь это необходимо.

override func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { 
    return 28 
} 
Смежные вопросы