我对iOS开发非常陌生,最近才发现了桌面视图单元的编辑附件。我正在尝试创建一个播放列表应用,在编辑模式下,人们可以重新排列歌曲的顺序,或点按一首歌来编辑其元数据。
目前,我的披露指标仅在编辑表时出现在单元格上,但它们出现在重新排序控件的左侧:App screenshot这是我的ViewController:
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var tableView: UITableView!
var rowToBeEdited: Int?
var songs: Song = [...sample data...]
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "songCell", for: indexPath) as! SongCell
let song = songs[indexPath.row]
cell.songNameLabel.text = song.name
cell.albumNameLabel.text = song.album
cell.artistsLabel.text = song.artists
cell.albumImage.image = song.albumImage
cell.editingAccessoryType = (tableView.isEditing) ? .disclosureIndicator : .none
return cell
}
func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
return true
}
// Add tableView functions for editing
@IBAction func editPlaylistButtonTapped(_ sender: UIBarButtonItem) {
tableView.isEditing = !tableView.isEditing
tableView.reloadData()
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if tableView.isEditing {
let song = songs[indexPath.row]
rowToBeEdited = indexPath.row
performSegue(withIdentifier: "showDetailVCToEdit", sender: song)
}
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
tableView.delegate = self
tableView.dataSource = self
//tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 140
}
// other code not shown...
}
我在一些应用程序中看到两个控件都在(like in this app)切换,我想知道如何实现这一点。
提前致谢