を閉じずに拡張可能なテーブルビューセル:https://www.youtube.com/watch?v=VWgr_wNtGPM、StackOverflowの上this answerによって補完。スウィフト3 - 私はこのチュートリアルで、次のしてきたスウィフト3.</p> <p>を使用しています他のもの
しかし、私がセルをクリックすると、他のセルを隠している間に展開されます。私がそれを展開すると、すでに展開されている他のセルが拡大し続けるようにするにはどうすればいいですか?
を閉じずに拡張可能なテーブルビューセル:https://www.youtube.com/watch?v=VWgr_wNtGPM、StackOverflowの上this answerによって補完。スウィフト3 - 私はこのチュートリアルで、次のしてきたスウィフト3.</p> <p>を使用しています他のもの
しかし、私がセルをクリックすると、他のセルを隠している間に展開されます。私がそれを展開すると、すでに展開されている他のセルが拡大し続けるようにするにはどうすればいいですか?
これをエレガントな方法で実現するには、UIStackView
要素で実装することをお勧めします。
あなたはこの自分を行うにしたい場合は、あなたがこの方法を試すことができ、このポストhttp://www.atomicbird.com/blog/uistackview-table-cells
を見てみましょう。
var cellsData: [CustomData] = [];
はCustomData
はのように思える::
class CustomData {
var isExpanded: Bool = false;
// whatever other variables
}
その後、カスタムセルがどのように見えるはずです何が、あなたが何かをしなければなりません
最初のステップは、あなただけの好きなモデルのリストを作成する必要がありますですtableView:didSelectItemAt
のように:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let row = indexPath.row;
self.cellsData[row].isExpanded = !self.cellsData[row].isExpanded;
self.tableView.reloadRows(at: [indexPath], with: .none); // or the other animations
}
"tableView:cell ForRowAtは」のように思える:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "CustomCell", for: indexPath) as! CustomCell;
if(cell.isExpanded){
// do something when the cell is expanded
}else{
// do something when the cell is not expanded
}
}
は、セルが再利用可能である、覚えて、あなたがより1時間以上のセルを使用している場合は、それが最後の時間を使用した場合、その後、セルが状態を維持することを意味します。
ExpyTableViewを使用すると、指定したヘッダーセルから拡張可能なセクションが作成されます。 iOS 8.0と互換性があります。
あなたがしなければならないのはimport ExpyTableView
にして、次のとおりです。
class ViewController: ExpyTableViewDataSource, ExpyTableViewDelegate {
@IBOutlet weak var expandableTableView: ExpyTableView!
// First, set data source and delegate for your table view.
override func viewDidLoad() {
super.viewDidLoad()
expandableTableView.dataSource = self
expandableTableView.delegate = self
}
// Then return your expandable cell instance from expandingCell data source method.
func expandableCell(forSection section: Int, inTableView tableView: ExpyTableView) -> UITableViewCell {
// this cell will be displayed at IndexPath with section: section and row 0
}
}
あなたの元テーブルビューセクションは、現在、拡張テーブルビューセクションで見ることができます。 example projectをダウンロードし、より詳細な例を参照することもできます。
あなたはあなたの質問を解決しましたか?そうでなければ、私はあなたにこれを手伝ってくれるでしょう。 –