4

Я использую Xib-файлы вместо раскадровки. Я создал табличный вид с некоторыми фиктивными данными. Он работает отлично, теперь я создал пользовательскую ячейку с некоторыми ярлыками и текстовыми полями. Как я могу использовать его в качестве верхнего или нижнего колонтитула UITableView?Как настроить пользовательскую ячейку как верхний или нижний колонтитул UITableView

+0

вы не можете использовать UITableView ячейки в качестве верхнего или нижнего колонтитула, для этого вам нужно создать один вид (XIb), и вы можете использовать его –

+0

клетки как заголовок? tableHeaderView - это тип представления, а не ячейка – ronan

+0

Как создать UiView с и Xib? когда я создаю новый файл CocoaTouch и делаю его подклассом UIView, опция «Также создавать файл Xib» не проверяется. – Byte

ответ

1

Вы можете создать нестандартный вид программно. Я попробовал следующий код. Попробуйте один раз.

override func tableView(tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { 
     let customview:UIView = UIView(); 
     let label = UILabel(); 
     label.text = "ur custom data" 
     /* 
      You can add any number of subviews you want here 
      And don't forget to add it to your customview. 
     */ 
     customview.addSubview(label) 
     return customview; 
    } 

Аналогичным образом вы можете сделать то же самое и для заголовка.

1

Этот метод добавляет заголовок TableView: В этом вы можете использовать любые элементы управления Как UIButton, UIImageView, .... и т. Д.

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 
     let sectionView = UIView() 
     sectionView.frame = CGRectMake(x,y,height,width) // For Set the Frame 
     sectionView.backgroundColor = UIColor.redColor() 

     return sectionView 
    } 
func tableView(tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { 
     let sectionView = UIView() 
     sectionView.frame = CGRectMake(x,y,height,width) // For Set the Frame 
     sectionView.backgroundColor = UIColor.redColor() 

     return sectionView 
    } 

Как Вы можете установить нижний колонтитул раздела и Вы можете добавить размер верхнего и нижнего колонтитула

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

func tableView(tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { 
    return 20.0 
} 
+0

Я создал представление cstom, которое содержит imageView. Когда я пытаюсь использовать этот метод с простым представлением wotha nackground, он работает, но не с моим пользовательским представлением – Byte

14

Ответ на самом деле довольно просто. В viewForHeaderInSection() создайте объект ячейки, как и в cellForRowAtIndexPath(), и верните его.

Вот пример кода.

override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 
    let cell = tableView.dequeueReusableCellWithIdentifier("cellIdentifier") as! YourTableViewCell 
    return cell 
} 

Вы можете установить высоту для заголовка, как:

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