私の問題は、テーブルビューに複数のセルがあることです。それらの細胞の内部には、画像があり、それがテープされている場合には緑色の境界線を得る。私がたくさんの細胞を持っていて、最初の細胞の最初の写真をタップすると、問題が起きたときです。テーブルのスクロールを少し早くすると、同じタイプの他のセルも、セル番号13などにあるにもかかわらず、緑色の境界線を持つ最初の画像が表示されます。私はそれが再利用可能な細胞だからだと思うが、どうやってテープに貼られている1つの細胞だけがその変化を保つことができるのだろうか?あなたの人は私が何を意味していたと思う、私はそれがちょっと混乱していることを知っている。ここでは、2つのカスタムセルの1つがあり、境界線を緑に変えるコードがあります。タイプbouncingRoundImagesの画像はUIImagesです。UIImageのカスタムサブクラスを作成してバウンスさせました。1つのtableviewcellの変更が他のセルに適用されました
class TwoPicsTableViewCell: UITableViewCell {
@IBOutlet var containerView: UIView!
@IBOutlet var firstImage: bouncingRoundImageView!
@IBOutlet var secondImage: bouncingRoundImageView!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
containerView.layer.cornerRadius = 10
containerView.clipsToBounds = true
setupFirstImage()
setupSecondImage()
}
func setupFirstImage() {
let tappedOne = UITapGestureRecognizer(target: self, action: #selector(checkPicTwo))
firstImage.addGestureRecognizer(tappedOne)
}
func setupSecondImage() {
let tappedTwo = UITapGestureRecognizer(target: self, action: #selector(checkPicOne))
secondImage.addGestureRecognizer(tappedTwo)
}
func checkPicTwo() {
firstImage.bouncing()
if secondImage.layer.borderWidth != 0 {
secondImage.layer.borderWidth = 0
}
}
func checkPicOne() {
secondImage.bouncing()
if firstImage.layer.borderWidth != 0 {
firstImage.layer.borderWidth = 0
}
}
}
'cellForRowAtIndexPath'メソッドとテーブルビューのセルを更新するテーブルビューコントローラの他のコードで質問を更新してください。 – rmaddy