1
我需要在表格視圖部分標題中添加清除按鈕。它和通知中心的完全一樣。所以當用戶點擊它時,'x'將變爲'清除'。如果他/她再次點擊它,應用程序將執行操作。但任何點擊此按鈕外的'清除'將返回'x'iOS UITableView:清除部分按鈕
我該如何做到這一點?在此先感謝
我需要在表格視圖部分標題中添加清除按鈕。它和通知中心的完全一樣。所以當用戶點擊它時,'x'將變爲'清除'。如果他/她再次點擊它,應用程序將執行操作。但任何點擊此按鈕外的'清除'將返回'x'iOS UITableView:清除部分按鈕
我該如何做到這一點?在此先感謝
不幸的是這不來了開箱即用。您必須創建您自己的自定義節標題視圖。該自定義標題視圖在左側包含一個UILabel。在右側放置一個標題爲「X」的UIButton
。當用戶點擊按鈕時,將其標題更改爲「清除」並將其狀態更改爲.Selected
。只有清除表視圖部分當按鈕被竊聽和它的狀態是.Selected
:
func setupButton() {
let button = UIButton()
button.setTitle("X", forState: .Normal)
button.addTarget(self, action: Selector("didPressButton:"), forControlEvents: .TouchUpInside)
addSubview(button)
}
func didPressButton(button: UIButton) {
if button.selected {
// clear your table view section
}
button.setTitle("Clear", forState: .Normal)
button.selected = true
}
,以便將按鈕回到其未選中狀態添加背景UIView
到您的節標題視圖,並添加一個UITapGestureRecognizer
它:
func setupBackground() {
let background = UIView()
let recognizer = UITapGestureRecognizer(target: self, action: Selector("didTapOutside:"))
background.addGestureRecognizer(recognizer)
insertSubview(background, belowSubview: button)
}
func didTapOutside(recognizer: UITapGestureRecognizer) {
button.selected = false
button.setTitle("X", forState: .Normal)
}
要使用您的自定義節頭在你的表視圖您實現以下UITableViewDelegate
方法:
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
// create your custom section header and return it
}
我明白了。我認爲有一個簡單的方法來做到這一點,但事實並非如此。謝謝 – Yacob