2016-12-02 8 views
0

私はtableviewの最初のセルを選択して100%のアルファを与えたいと思います。最初のセルだけをアルファベットにして、このスタイルをdequeueReusableCellメソッドで再利用しないでください。再利用せずにテーブルビュー内の最初のセルを選択する方法?

if indexPath.row == 0 { 
    cell.imageView.alpha = 1.0 
} 

I機能cellForItemAt内のコードの上に使用する場合、それはすべての7細胞に1.0のアルファを設定します。私はそれが最初のセルに適用され、スタイルが再利用されないようにしたいだけです...どうすればこの問題を解決できますか?別のカスタムセルを作成すべきか、これを達成するためにコードに親切なアプローチがありますか?

+0

代わりにデータモデルを更新してみてください。 – user2071152

答えて

2

最初のセルでない場合は、imageViewのアルファをリセットする必要があります。

if indexPath.row == 0 { 
    cell.imageView.alpha = 1.0 
} 
else { 
    cell.imageView.alpha = 0.0 // or whatever alpha value you need 
} 
+1

一般に、ある条件に対して設定したセルプロパティは、他のすべての場合にリセットする必要があります。 – rmaddy

+0

行jnのスクロールを開始すると、UiTableが再利用されます。したがって、最初の行の色が次の行のために再現されます。ヒント:セクションヘッダーをタイトルとして使用することもできます。 – Vincent

+0

これは私の問題を解決していただきありがとうございます。シンプルで清潔! – Caspert

2

UITableViewCell xibサブクラスを作成します。次に、テーブルを設定するときに、同じセルに異なるreuseIdentifierを登録することができます。

tableView.register(CustomCell, forCellReuseIdentifier: "AlphaCell") 
tableView.register(CustomCell, forCellReuseIdentifier: "{REUSE_ID}") 

ときであなたの設定あなたのセルを:あなたの他のセルのためのあなたの最初のセル、および "{} REUSE_ID" の

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 

デキュー "AlphaCell"。

+1

簡単な質問のための多くの作業。 – Vincent

+1

@answered、いくつかのプロジェクトでは、セル自体の内容が異なる場合、ここで説明しているのとまったく同じ方法を使用します。しかし、この特殊なケースでは、それは過剰な過労です。 (Downvoteは私のものではなかった)。 – Vincent

関連する問題