Ну, я наивный разработчик IOS, использующий быстрый язык.Как добавить HeaderView из nib в UiTableView программно в Swift
У меня есть вид на стол, который отображает список функций отеля. Теперь я хочу добавить информацию заголовка в таблицуView с изображением отеля, название отеля над табличным видом, чтобы информация заголовка также прокручивалась вместе с содержимым таблицы (список функций продукта)
В этом случае TableView со списком функций работает нормально.
class HotelDetailViewController: UIViewController,UITableViewDataSource,UITableViewDelegate {
@IBOutlet weak var categoriesTableView: UITableView!
var items: [(String, String,String)] = [
("Service", " Courteous service, Good staff , Good staff"," Bad Facility"),
("Vibe", " Courteous service, Good staff"," Bad Facility"),
("Hotel", " Courteous service, Good staff"," Bad Facility"),
("Room Facility", " Courteous service, Good staff"," Bad Facility"),
("Amenities", " Courteous service, Good staff"," Bad Facility"),
("Food", " Courteous service, Good staff"," Bad Facility")
]
override func viewDidLoad() {
super.viewDidLoad()
let nib = UINib(nibName: "HotelSnippetTableViewCell", bundle: nil)
categoriesTableView.separatorStyle = UITableViewCellSeparatorStyle.None
categoriesTableView.registerNib(nib, forCellReuseIdentifier: "CustomCell")
categoriesTableView.rowHeight = UITableViewAutomaticDimension
categoriesTableView.estimatedRowHeight = 100
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let customTableViewCell = tableView.dequeueReusableCellWithIdentifier("CustomCell") as! HotelSnippetTableViewCell
let info = items[indexPath.row]
customTableViewCell.setCategory(info.0)
customTableViewCell.setPositive(info.1)
customTableViewCell.setNegative(info.2)
return customTableViewCell
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
tableView.deselectRowAtIndexPath(indexPath, animated: true)
print("You selected cell #\(indexPath.row)!")
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return items.count
}
}
Для получения информации заголовка, как HotelImage, название отеля и других лейбл я создал перо с набором всех видов и соответствующий класс со всеми ссылками, отображенных на него.
Теперь, как добавить этот UiView в мое табличное представление как заголовок программно (потому что я получаю данные после отдыха).
Я искал, но нашел учебники о том, как установить заголовки секций строки.
Пар вещей я попробовал:
Я обнаружил, что существует функция протокола для TableView
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { //Code}
Но как загрузить мое перо здесь и установить на этот Tableview а также я хочу, чтобы ti запускал это программно только после получения данных из службы
Создать перо с одним из родителей, как TableViewCell, загрузите его с помощью dequeueReusableCellWithIdentifier(), установите данные и установите Tableview
let headerCell = categoriesTableView.dequeueReusableCellWithIdentifier("HotelDetailHeaderTableViewCell") as! HotelDetailHeaderTableViewCell headerCell.setImageUrl(""); headerCell.setHotelZmi(CGFloat(87)) headerCell.setNameAndPersona("Fort Aguada Goa", persona: "OverAll", reviewsCount: "780") headerCell.frame = CGRectMake(0, 0, self.categoriesTableView.bounds.width, 600) categoriesTableView.tableHeaderView = headerCell
Но даже это бросает некоторое исключение и я не могу видеть исключение (Как просмотреть журнал ошибок в Xcode?).
Является ли процесс, который я делаю, является правильным? Если не кто-нибудь, пожалуйста, мне предложить эффективный подход
Поскольку в Android я использовал для создания NestedScrollView с линейной планировкой внутри него встроен с любым количеством recyclerViews (удаление свиток для recyclerviews) и RelativeLayout
Пожалуйста, помогите мне.
Вам нужно создайте 'UIView' вместо' UITableViewCell' для headerVIew, хотя в xib – xmhafiz
Как загрузить UIView в моем контроллере? – Manikanta
только что добавил мой ответ – xmhafiz