2017-04-14 8 views
0

こんにちは私は現在UItableviewを持っており、そのテーブルビューでは2つのUIButtonを含むカスタムセルを作成しました。これは、upとdownvote関数を実現するためです。私はちょうど私がユーザーがそれをクリックし、同じテンプレートを使用している他のセルのボタンに影響を与えていない後、セル内のこれらのuibuttonsを無効にするだろうか?UItableviewcellでUIbuttonを無効にする方法

私はuitableviewcellのコントローラで関数を実行しようとしました。ボタンをクリックするとボタンが無効になりますが、このメソッドを使用すると他のセルボタンも無効になるバグが発生します。

@IBOutlet weak var down: UIButton! 
@IBOutlet weak var up: UIButton! 


@IBAction func upVoteButton(_ sender: UIButton) 
{ 

    self.up.isEnabled = false 

} 
@IBAction func downVoteButton(_ sender: UIButton) { 

    self.up.isEnabled = false 
} 

助けてください!前もって感謝します。

+0

テーブルのセルは、再利用可能ですか新しいセルをスクロールするとすぐに再利用可能なセルです。新しいセルも表示される前に無効にしておけば、セルカスタムクラスで(prepareforreuse)メソッドを使用してターゲットを達成できます。その機能の仕組みを調べることができます。 –

答えて

2

私はcheckListの配列を作成することを好むと思います:[Bool]ビューでは、メソッドをロードしたり、テーブルをセットアップしようとしているどのメソッドでも、テーブルの長さの配列真と@IBActionが呼び出されたときに、この

let cell = sender.superview?.superview as! UITableViewCell 
    let tableview = cell.superview?.superview as! UITableView; 
    let index = tableview.indexPath(for: cell); 
    let n = index?.section/row // whatever u r using 
    checkList[n] = false; 

は現在、オーバーライドのfuncのtableView(_のtableView:のUITableView、cellForRowAt indexPath:IndexPath)でない - >のUITableViewCell この

cell.button.isEnabled = checkList[indexPath.section/row] 
+0

それはちょうど概要であり、正確なコードではありませんので、問題が発生した場合は – adam

+0

にお問い合わせください。 – JackieXY

+0

こんにちはアダム私はこの方法を回避しようとしました。 IBActionメソッドで変数checkListにアクセスすることができません。 IBactionがUItableviewcellクラスにある間、checkList配列はviewcontrollerクラスに格納されます。助言がありますか?これは、checkList [n] = falseを実行しようとすると意味します。私はエラー "unresolve identifierの使用"を受け取ります。 – JackieXY

関連する問題