テーブルビューのボタンに少し問題があります。テーブルビューセル繰り返しのボタン
私は3つのボタンでカスタマイズしたtableViewCellを持っています。インターフェイスビルダーでボタンを非表示に設定し、テーブルがロードされるとボタンが期待どおりに隠されます。
didDelectRowが呼び出されたときにtableviewのhiddenプロパティをfalseに設定し、didDeselectRowが呼び出されたときにhidden.trueを設定しました。これは正常に動作します。問題は、didSelectRowで表示するように設定されているボタンも、7つのセルが消えるごとに表示されることです。彼らは自分自身を繰り返し続けます。以下は
は、ボタン
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let cell = tableView.cellForRowAtIndexPath(indexPath) as! ContactsViewCell
print("Table selected")
cell.insertEmailButton.hidden = false
cell.insertPhoneButton.hidden = false
cell.insertAllButton.hidden = false
cell.contactTextLabel.alpha = 0.2
cell.contactDetailTextLabel.alpha = 0.2
}
を示しており、これはtableViewCellが
func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {
let cell = tableView.cellForRowAtIndexPath(indexPath) as! ContactsViewCell
cell.insertEmailButton.hidden = true
cell.insertPhoneButton.hidden = true
cell.insertAllButton.hidden = true
cell.contactTextLabel.alpha = 1.0
cell.contactDetailTextLabel.alpha = 1.0
}
を選択解除されたときに、私はいくつかの研究を行なったし、私はそれがボタンで行かもしれない学んだ彼らを隠しコードです.hiddenがfalseに設定されていることが、tableviewによって再利用されています。しかし、再利用されているセルはcellForRowAtIndexPathであり、didSelectRowのセルではなく、button.hiddenをfalseに設定していることをドキュメントから理解しています。
また、cellForRowAtIndexPathのif else文でcell.isSelectedプロパティを使用して、ボタンを非表示にして表示しようとしましたが、ボタンが表示されません。テーブルがスクロールされたときに、あなたの助けを事前に
おかげ
ありがとうございました。私は細胞の場合に使いました。cellForRowAtIndexPathでisSelectedを使用して、ボタンの非表示プロパティをtrueまたはfalseに設定しますが、ボタンは表示されませんでした。 –
希望の結果についてもう少し詳しく教えてもらえますか? –
何も複雑ではありません。私はちょうど連絡先とテーブルビューをしたいとセルがタップされると、タイトルとサブタイトルフェードと3つのボタンが表示されます。別のセルが選択されると、最初のセルはそのアルファを元に戻し、ボタンを隠し、新しく選択されたセルはボタンを表示してタイトルをフェードします。 –