Я использую Xib-файлы вместо раскадровки. Я создал табличный вид с некоторыми фиктивными данными. Он работает отлично, теперь я создал пользовательскую ячейку с некоторыми ярлыками и текстовыми полями. Как я могу использовать его в качестве верхнего или нижнего колонтитула UITableView?Как настроить пользовательскую ячейку как верхний или нижний колонтитул UITableView
ответ
Вы можете создать нестандартный вид программно. Я попробовал следующий код. Попробуйте один раз.
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;
}
Аналогичным образом вы можете сделать то же самое и для заголовка.
Этот метод добавляет заголовок 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
}
Я создал представление cstom, которое содержит imageView. Когда я пытаюсь использовать этот метод с простым представлением wotha nackground, он работает, но не с моим пользовательским представлением – Byte
Ответ на самом деле довольно просто. В 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
}
вы не можете использовать UITableView ячейки в качестве верхнего или нижнего колонтитула, для этого вам нужно создать один вид (XIb), и вы можете использовать его –
клетки как заголовок? tableHeaderView - это тип представления, а не ячейка – ronan
Как создать UiView с и Xib? когда я создаю новый файл CocoaTouch и делаю его подклассом UIView, опция «Также создавать файл Xib» не проверяется. – Byte