カスタムセルクラスの反復としてTableView
が設定されています。各セル(2つのセクションの両方)には、いくつかのラベルとボタンが含まれています。 2番目のセクションのセルの場合、ボタンテキストはプログラムによって「キャンセル」に設定され、最初のセクションのセルは異なるものに設定されます。複数のUITableViewCellは、1つだけが押されたにもかかわらず反復ボタンの影響を受けますか?
@IBAction func mainPageCancelAction(_ sender: Any) {
if mainPageCancelButton.title(for: .normal) == "x"{ //1st section cell
mainPageCancelButton.setTitle("y", for: .normal)
} else if mainPageCancelButton.title(for: .normal) == "y"{//1st section cell
mainPageCancelButton.setTitle("x", for: .normal)
} else if mainPageCancelButton.title(for: .normal) == "Cancel"//2nd section cell {
mainPageUnattendCancelButton.setTitle("Canceled", for: .normal)
NameLabel.alpha = 0.3
CreatorLabel.alpha = 0.3
TypeLabel.alpha = 0.3
}
}
を限り私ができるように次のように私は、ボタンがクリックされると、次のようにアルファ値を減らすことにより、ラベルのテキストをグレー表示にする(button.title
「キャンセル」に等しい細胞)のボタンを設定していますこのボタンは、ボタンが「キャンセル」に設定されている2番目のセクションでは、アルファ値を下げることによってラベルをグレーアウトする必要があります。これらの第2セクションのセルのいずれかのボタンをクリックすると、そのセルのアルファ値は実際に下がりますが、最初のセクションセルのラベルの一部もランダムに(私のランダムな...)グレイ表示されますif文でif Button.title(for: .normal) == "Cancel"
を満たしていないため、そのアクションの影響を受けてはなりません。タイトルはxとyです。なぜこれが起こっているのか分かりません。初歩的なifステートメントは、単純なものですが、button.title
は決して「キャンセル」できないので、最初のセクションラベルのどれもがアルファ値の変更の影響を受けないようにする必要があります。特に第2セクションのセルが正しく影響を受けるため、これがなぜ起こっているのか分かりません。ボタンが押されたセルだけがグレー表示されます。
両方のセクションであなたの細胞が同じreuseidentifierを持っていますか?セクション1のリサイクルされたセルのアルファ値はセクション2で以前に設定された値を使用しているのでしょうか?各セルを作成するときにアルファ値をデフォルトにリセットしますか? – Magnas
@Magnasはい、彼らは同じ再利用識別子を持っています。それらは同じセルです。セクションに応じて異なる値にラベルを設定してください。アルファ値をどのようにリセットすればよいですか? –
@Magnasあなたが提案したようにするだけで、問題は解決できることが判明しました。最初のセクションのセルのアルファ値をデフォルトの1.0に設定する。 –