質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
TableView

TableView(UITableView)とは、リスト形式で表示するコントロールで、ほとんどのアプリに使用されています。画面を「行」に分けて管理し、一般的には各行をタップした際に詳細画面に移動します。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

1512閲覧

swiftのtableviewでソート時に一番上のセルのみ移動できないようにする方法

yuyakoyatoya

総合スコア5

TableView

TableView(UITableView)とは、リスト形式で表示するコントロールで、ほとんどのアプリに使用されています。画面を「行」に分けて管理し、一般的には各行をタップした際に詳細画面に移動します。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2019/08/31 12:43

前提・実現したいこと

canMoveRowAt、canEditRowAtのdelegateでtrueを返しておりソート可能な状態になっているとします。
その状態でtableViewの1行目のセルだけ移動させないようにしたいと考えています。

現在の状態は以下のURLのような状態でセルの右に「三」が表示されている状態です。
https://qiita.com/tomoya_matsuyama/items/8fa008ccb7fab3a83b5d

###試したこと
1行目だけセルの右側の「三」の表示を消すことはできたので、1行目自体をスワイプして移動させることはできない状態にはできました。しかし2行目をスワイプして1行目の上に移動させることができてしまい、結局1行目が2行目に移動できる状態になっており、未だ不十分です。

なにか良い方法があればお知恵をお貸しください。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

tableView(_:targetIndexPathForMoveFromRowAt:toProposedIndexPath:)
で提案された移動先(toProposedIndexPath)が一行目の上になる場合に、一行目の下に書き換えて返してあげれば(return IndexPath)できるかな?と思うので試してみてください。

投稿2019/08/31 13:33

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuyakoyatoya

2019/08/31 15:05

思っていたとおりの動作となりました。 toProposedIndexPathが0の場合は1にして返すようにすると1行目は全く動かず固定された行のような振る舞いとなりました。 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問