Я работаю в swift 2.x и xcode 7.x, и я застрял с tabelviews и данными api. Everywere я смотрю, что мне нужно иметь 2 массива с моим объектом и один для раздела. мой текущий код:Разделы в UITabelView с данными API
//MARK: Setting up the tableview
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return eventsCollection.count
}
func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
let eventDate = self.eventsCollection[section].startDate
let month = Utility.sharedInstance.convertToDateStringMonth(eventDate)
return month
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.eventsCollection.count
}
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return 70;
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
return
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: EventCellView!
cell = self.calenderTabelView.dequeueReusableCellWithIdentifier("EventCellView") as! EventCellView
cell.dayNameLabel.text = Utility.sharedInstance.getDayOfWeek(self.eventsCollection[indexPath.row].startDate)
cell.dayNumberLabel.text = Utility.sharedInstance.convertToDataDay(self.eventsCollection[indexPath.row].startDate)
cell.NewLabel.text = self.eventsCollection[indexPath.row].Name
return cell
}
Когда я получу данные, я разворачиваю его и устанавливаю его в eventcollection. exaple от события:
ПРИМЕЧАНИЕ: это ответ API.
AllDay = 1;
Attendees = (
); <as array>
Description = "Test Evenment"; <as string>
EndDate = "2017-02-03T23:59:59+00:00"; <as string>
ID = 173; <as int or string>
Name = "Test evenement"; <string>
StartDate = "2016-11-01T00:00:00+00:00"; <string>
VenueName = "Appbakkers HQ";} <string>
Когда я запускаю код, он выделяет tabelview в разделах с названием месяца как заголовок заголовка. Но мне нужно отсортировать событие в нужном месяце. например, один в июне должен появиться только один раз в июне, и когда я добавлю другого в июне, ему нужно туда идти.
так TableView выглядеть следующим образом:
июня
ячейка для января
клеток за июнь
января
клеток за январь
клеток за июнь
то, что я хочу
июня:
ячейка для июня
января
ячейки для января
the function getDayOfWeek -> monday thueseday ,etc as a string
the function convertToDataDay -> 1 - 31 as a string
the function convertToDateStringMonth -> june, juli, etc. as string
любого входного бы помочь мне вместе! Спасибо за любые ответы.
ДОПОЛНИТЕЛЬНО:
class Event: NSObject {
//the event class
var id:Int = 0
var Description: String = ""
var endDate: String = ""
var Name: String = ""
var startDate: String = ""
var venueName: String = ""
// var Attendees: NSDictionary = [:] havent figuerd this part out also
}
func mapComment(responseObject: AnyObject) -> Event{
let EventObject = Event()
// let andenteesObject = responseObject["Attendees"]
if let ID = responseObject["id"] as? Int {
EventObject.id = ID
} else if let ID = responseObject["id"] as? String {
EventObject.id = Int(ID)!
}
if let despription = responseObject["Description"] as? String{
EventObject.Description = despription
}
if let startDate = responseObject["StartDate"] as? String{
EventObject.startDate = startDate
}
if let endDate = responseObject["EndDate"] as? String{
EventObject.endDate = endDate
}
if let name = responseObject["Name"] as? String{
EventObject.Name = name
}
// if let attendees = andenteesObject as? NSDictionary{
// EventObject.Attendees = attendees
// }
return EventObject
}
}
так у меня есть 2 вопроса, собственно:
- Как я сортировать мои данные в месяц и массив
- Как я получаю мои данные из этого массива в TableView?
Можете ли вы показать ответ json, который вы получаете, Это будет более полезно. –
Я сделал свои части даже из примера. добавила заметку, чтобы сделать ее более ясной. – Cees
Не похоже на то, что по крайней мере один ответ, который вы хотите показать с помощью раздела и его ячейки. –