在UITableViewCell中切换编辑附件和重新排序控件的顺序

时间:2017-10-22 16:58:22

标签: ios swift uitableview swift3

我对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)切换,我想知道如何实现这一点。

提前致谢

0 个答案:

没有答案