Я пытаюсь создать демонстрационное приложение, которое очень похоже на приложение календаря iOS по умолчанию. Я почти закончил, но не совсем уверен, что лучше всего использовать пользовательскую ячейку в TableView.Программная реализация XIB TableView Cell
Глядя на скриншот (см. Ниже), приложение по умолчанию имеет TableView всех событий в данный день. Как мне следует применять этот стиль в моей камере?
На данный момент у меня есть это (в основном называется в моем viewDidAppear
метод:
- Месяц название как ярлык, который определен в раскадровке
- Календарь пакет, который я применяется программно
- По умолчанию iOS Tableview, который также применяется программно под этим
Поскольку TableView применяется программно, я не совсем уверен, куда идти. B Elow мой код TableView:
let cellReuseIdentifier = "eventCell"
let offsetY = {% Some fancy calculation here to get offset pos %}
let height = {% Just as above but to determine remaining height %}
tableView.frame = CGRectMake(0, offsetY, screenSize.width, height)
tableView.delegate = self
tableView.dataSource = self
tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: cellReuseIdentifier)
view.addSubview(tableView)
И конкретные методы Исходные данные:
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return selectedEvents.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
// create a new cell if needed or reuse an old one
let cell = tableView.dequeueReusableCellWithIdentifier(cellReuseIdentifier)!
let event = selectedEvents[indexPath.row]
// set the text from the data model
cell.textLabel?.text = "\(event.startTime) - \(event.endTime) | \(event.summary)"
return cell
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
print("You tapped cell number \(indexPath.row).")
}
Любое руководство будет оценено :)
@sukh этот ответ, как вы используете свой собственный класс клеток - будь то реализуется программно или XIB до вас, но в моем опыте большинство людей xibs легче проектировать. – bradkratky
Спасибо @ andrew-mckinley и @bradkratky. Для того, чтобы это получилось, мне пришлось удалить строку 'registerClass' - это правильно? Я могу добавить дополнительные сведения, если это необходимо ... в основном я создал новый подклассу 'UITableViewCell' с соответствующим XIB-файлом. Изменил идентификатор повторного использования и изменил метод cellForRowAtIndexPath, чтобы проверить, нет ли ячейки. Если он равен нулю, я использую следующую строку: «tableView.registerNib (UINib (имя_бита:« RoomDetailTableViewCell », bundle: nil), forCellReuseIdentifier:« roomDetailCell »)', а затем в основном повторно освободил ячейку – sukh
Хорошо, вы можете игнорировать мои глупость - я нашел еще один дублированный пост StackOverflow здесь http://stackoverflow.com/questions/28999400/swift-uitableview-custom-cell-programatically-documentation - просто последует этому :) – sukh