同じセクションに一連のセルがあります。私がセルの1つのボタンを押すと、他のセルに移動するアニメーションを下に移動したいと思います。私が念頭に置いているアニメーションは、編集モードでセルをドラッグするとどうなるかと似ていますが、ボタンをタップするとプログラムで実行したいと思います。私が集めたもの 、私はtableView.moveRowAtIndexPath
を使用する必要がありますが、私はそれを正しく行うように見えることはできませんの場合:この後アニメーションのUITableViewCellがプログラム的に下に移動
//inside the function for when the button is pressed
let cell = sender.superview?.superview?.superview as! MainTableViewCell
let indexPath = tableView.indexPathForCell(cell)
let goal = goals[(indexPath?.row)!]
goals.removeAtIndex((indexPath?.row)!)
goals.append(goal)
tableView.beginUpdates()
self.tableView.moveRowAtIndexPath(indexPath!, toIndexPath: indexPaths.last!)
tableView.endUpdates()
tableView.reloadData()
、関数は関数自体をトリガーボタンを無効にします。私が起こったことに気づいたことは、私が移動したいセルが無効になるだけでなく、セクションの最後のセルも同様です。最後のセルがすでに無効になっている場合は、最後のセルが無効になるなどします。 ご協力いただければ幸いです。
編集:canMoveRowAtIndexPath
とも呼ばれ、trueを返します。
あなたがmoveRowAtIndexPathから得たアニメーションは、あなたの必要性に合っていませんか?またはアニメーションが機能していないのですか? – bbjay
@bbjayアニメーションが動作していません。 – Marcel
この '奇妙な'ボタンの動作に関しては、特に 'reloadData'の後にテーブル行を同時に操作しながら、' UITableViewCell'のビューを直接変更することに頼ることはありません。ボタンを有効にするかどうかは、モデルの一部として保持される情報の一部でなければならず、 'tableView:cellForRowAtIndexPath:'で適切にセルを設定するために使用されます。 – crizzis