前提・実現したいこと
実現したいことは、UILabelに書かれたテキストをスワイプで消去です。
ウェブで調べたところ、UITableViewでの消去方法が見つかりました。
このサイトを参考に、編集しようとしています。https://qiita.com/Lulu34/items/b0c88d1e1163d50f743b
UITableViewをUILabelに変更して試してみましたが、上手くいきませんでした。
単純に、UITableViewをUILabelに変更するだけではうまく動かないのでしょうか?
(UILableとUITableViewの機能の違いをいまいち理解できていません。)
投げやりな質問で申し訳ありません。ご返信よろしくお願いします。
該当のソースコード
Swift
1class ViewController: UIViewController, FSCalendarDelegate, FSCalendarDataSource, FSCalendarDelegateAppearance { 2 //定数について 3 let labelDate = UILabel(frame: CGRect(x: 5, y: 475, width: 400, height: 50)) 4 5//省略 6 7//以下、webで調べた部分 8//セルの編集許可 9 func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool 10 { 11 return true 12 } 13 14 //スワイプしたセルを削除 15 func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) { 16 if editingStyle == UITableViewCell.EditingStyle.delete { 17 labelDate.remove(at: indexPath.row) 18 //↑ここでValue of type 'UILabel' has no member 'remove’ というエラーがでます 19 tableView.deleteRows(at: [indexPath as IndexPath], with: UITableView.RowAnimation.automatic) 20 } 21 } 22
###tableViewをLabelに変更した場合のコード
Swift
1func tableView(_ Label: UILabel, canEditRowAt indexPath: IndexPath) -> Bool 2 { 3 return true 4 } 5 6 //スワイプしたセルを削除 7 func tableView(_ Label: UILabel, commit editingStyle: UILabel.EditingStyle, forRowAt indexPath: IndexPath) { 8 //↑ここで'EditingStyle' is not a member type of 'UILabel'というエラーがでます 9 if editingStyle == UILabel.EditingStyle.delete { 10 labelDate.remove(at: indexPath.row) 11 //↑ここでValue of type 'UILabel' has no member 'remove'というエラーがでます 12 Label.deleteRows(at: [indexPath as IndexPath], with: UILabel.RowAnimation.automatic) 13 //↑ここでtype 'UILabel' has no member 'RowAnimation'というえらーがでます 14 } 15 }
試したこと
UITableViewをUILabelに変更して実装
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。