2014-11-19 2 views
7

Я хочу получить заголовок заголовка в разделе UITableView, пожалуйста, подскажите мне, что такое синтаксис в swift, чтобы получить заголовок заголовка в разделе.UITableView get titleForHeadersInSection swift

func tableView(tableView : UITableView, titleForHeaderInSection section: Int)->String 
{ 
    switch(section) 
    { 
    case 2:return "Title 2" 
     break 
    default :return "" 
     break 
    } 

} 

func tableView (tableView:UITableView , heightForHeaderInSection section:Int)->Float 
    { 

var title = tableView.titleForHeaderInSection[section]; 
if (title == "") { 
return 0.0; 
} 
return 20.0; 
} 

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

var title = tableView.titleForHeaderInSection[section] as String 
if (title == "") { 
return UIView(frame:CGRectZero); 
} 
var headerView:UIView! = UIView (frame:CGRectMake(0, 0, self.tableView.frame.size.width, 20.0)); 
headerView.backgroundColor = self.view.backgroundColor; 

return headerView; 
} 
+0

Почему разве вы не используете номер раздела для сравнения вместо названия? – zisoft

+0

На самом деле я хочу знать синтаксис, чтобы получить заголовок для заголовка в разделе. –

ответ

3

Для того, чтобы вызвать этот метод, вы должны использовать метод UITableViews titleForHeaderInSection. Этот метод предоставит индекс для текущего раздела, и вы должны вернуть String, возвращаемая строка будет установлена ​​как заголовок.

Для вызова этого, позволяет предположить, что мы имеем массив строк называется cars

cars = ["Muscle", "Sport", "Classic"] 

Теперь мы можем просто вызвать

override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? 
{ 
    // Ensure that this is a safe cast 
    if let carsArray = cars as? [String] 
    { 
     return carsArray[section] 
    } 

    // This should never happen, but is a fail safe 
    return "unknown" 
} 

Это будет возвращать названия разделов в порядке, указанном выше.

11

Вы можете использовать FUNC уже определен в вашем классе, а именно:

self.tableView (Tableview, titleForHeaderInSection: раздел)

Например, используя код:

func tableView(tableView : UITableView, titleForHeaderInSection section: Int)->String { 
    switch(section) { 
    case 2:return "Title 2" 

    default :return "" 

    } 
} 

func tableView (tableView:UITableView , heightForHeaderInSection section:Int)->Float 
{ 

    var title = self.tableView(tableView, titleForHeaderInSection: section) 
    if (title == "") { 
     return 0.0 
    } 
    return 20.0 
} 
+0

Спасибо. Кстати, вам не нужен «перерыв». –

+1

Удалено «перерыв» - слева от вырезания и вставки большего фрагмента :) – HungryArthur