web-dev-qa-db-ja.com

UITableView get titleForHeadersInSection swift

UITableViewのセクションでヘッダーのタイトルを設定したいと思います。セクションのヘッダーのタイトルを設定する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;
}
13
Anupam Mishra

クラスですでに定義されているfuncを使用できます。

self.tableView(tableView、titleForHeaderInSection:section)

たとえば、次のコードを使用します。

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
}
18
HungryArthur

このメソッドを呼び出すには、UITableViews titleForHeaderInSectionメソッドを使用する必要があります。このメソッドは現在のセクションのインデックスを提供し、文字列を返す必要があります。返された文字列はヘッダーとして設定されます。

これを呼び出すために、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"
}

これにより、セクションタイトルが上記の順序で返されます。

4
Alex