TableViewCell을 정렬하는 기능을 사용해보기

10531 단어 Swift

이번 내용





코드와 간략한 설명


  • func tableView(_ tableView: UITableView, canMoveRowAt indexPath: IndexPath) -> Bool {} 에서 셀을 재정렬할 수 있도록 할지 여부를 true 또는 false 로 설정합니다.
  • func tableView(_ tableView: UITableView, moveRowAt sourceIndexPath: IndexPath, to destinationIndexPath: IndexPath) {} 에서 셀을 재정렬할 때 작동하는 처리를 설정합니다.
  • func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCell.EditingStyle {} 에서 셀의 왼쪽에 표시할 내용을 설정합니다. 이번에는 .none 로 아무것도 표시하지 않게 하고 있습니다.
  • editingStyleForRowAt.none 로 설정한 것에 의해 남아 버린 공백을 삭제하기 위해 func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCell.EditingStyle {}false 로 설정합니다.
    import UIKit
    
    class ViewController: UIViewController {
    
        let tableView = UITableView()
    
        var cellContentsArray = ["UIKit","SwiftUI","MapKit","ARKit","CoreML","WebKit","Foundation","LocalAuthentication","CoreGraphics","Combine"]
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            tableView.register(UITableViewCell.self, forCellReuseIdentifier: "Cell")
            tableView.frame = CGRect(x: view.frame.minX, y: view.frame.minY, width: view.frame.width, height: view.frame.height)
            tableView.isEditing = true
            view.addSubview(tableView)
    
            tableView.dataSource = self
            tableView.delegate = self
        }
    }
    
    extension ViewController:UITableViewDataSource{
    
        func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    
            return cellContentsArray.count
        }
    
    
        func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    
            let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
            cell.textLabel?.text = cellContentsArray[indexPath.row]
    
            return cell
        }
    
        func tableView(_ tableView: UITableView, canMoveRowAt indexPath: IndexPath) -> Bool {
    
            return true
        }
    
        func tableView(_ tableView: UITableView, moveRowAt sourceIndexPath: IndexPath, to destinationIndexPath: IndexPath) {
    
            let cellContent = cellContentsArray[sourceIndexPath.row]
            cellContentsArray.remove(at: sourceIndexPath.row)
            cellContentsArray.insert(cellContent, at: destinationIndexPath.row)
        }
    
    }
    
    extension ViewController:UITableViewDelegate{
    
        func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCell.EditingStyle {
    
            return .none
        }
    
        func tableView(_ tableView: UITableView, shouldIndentWhileEditingRowAt indexPath: IndexPath) -> Bool {
    
            return false
        }
    }
    
    



    지적, 질문 등 있으면, 코멘트까지 부탁드립니다.

    좋은 웹페이지 즐겨찾기