我需要一個搜索欄來查看我的表格,但我是一名初學者,我正在努力做到這一點。如何在帶有部分的TableView上創建SearchBar?
在我的表格視圖中,我有幾個部分。每個部分都填充有包含名稱和日期的項目。我希望用戶能夠通過名稱進行研究。
還有一件事:爲了使它更容易和更有組織,我創建了一個枚舉並希望用它來命名這些部分。
我做了一個例子來說明如何到目前爲止,我已經達到了:
class Cinema: UITableViewController {
// MARK: - Properties
var movie:[(type: Genre, data:[Movies])] = []
//MARK: - Super Methods
override func viewDidLoad() {
super.viewDidLoad()
movie = [
(Genre.Action, [
Movies (name: "Matrix", year: "1999", description: "A computer hacker learns from mysterious rebels about the true nature of his reality and his role in the war against its controllers."),
Movies (name: "Gladiator", year: "2000", description: "When a Roman general is betrayed and his family murdered by an emperor's corrupt son, he comes to Rome as a gladiator to seek revenge."),
Movies (name: "Saving Private Ryan", year: "1998", description: "Following the Normandy Landings, a group of U.S. soldiers go behind enemy lines to retrieve a paratrooper whose brothers have been killed in action.")
]),
(Genre.Drama, [
Movies (name: "Good Will Hunting", year: "1997", description: "Will Hunting, a janitor at M.I.T., has a gift for mathematics, but needs help from a psychologist to find direction in his life."),
Movies (name: "Schindler's List", year: "1993", description: "In Poland during World War II, Oskar Schindler gradually becomes concerned for his Jewish workforce after witnessing their persecution by the Nazis.")
]),
(Genre.Comedy, [
Movies (name: "Monty Python and the Holy Grail", year: "1975", description: "King Arthur and his knights embark on a low-budget search for the Grail, encountering many, very silly obstacles."),
Movies (name: "Hangover", year: "2009", description: "Three buddies wake up from a bachelor party in Las Vegas, with no memory of the previous night and the bachelor missing. They make their way around the city in order to find their friend before his wedding.")
])
]
}
// MARK: - Table view data source
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return movie.count
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return movie[section].data.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! ADTableViewCell
cell.title.text = movie[indexPath.section].data[indexPath.row].name
cell.year.text = movie[indexPath.section].data[indexPath.row].year
return cell
}
override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
if section == 0 {
return "Action"
} else if section == 1 {
return "Drama"
} else {
return "Comedy"
}
}
}
PS:當用戶點擊他選擇了行,他將被髮送到一個的UIViewController那將顯示名稱,年份和說明。在這個例子中,我沒有創建一個prepareForSegue。
在此先感謝。