2012-01-06 37 views
26

私はWiFi設定ページと同様のものを作りたいと思います:テーブルセルをタップすると、セルの左側にチェックボックスを入れ、詳細を表示する権利があります。UITableViewCellの左側にチェックマークを入れてください

私の質問:カスタムUITableViewCellを構築せずにUITableViewCellの左側にチェックマークを入れる方法はありますか?

+1

✔️この✓をコピーすることができ、コマンド+ Ctrlキー+スペースキーを押すことができます。 – EmptyStack

答えて

120

答えはYESです!カスタムセルを作成したり、イメージビューを追加したりする必要はありません。チェックボックスをシミュレートするには、チェックボックス状態のユニコード記号をセルテキストに追加するだけです。

チェックボックスに使用しているユニコード記号は、チェックの場合は\u2705、未チェックの場合は\u2B1C(iOS 5では\U0001F533とほぼ同じです)です。 iOSはいくつかのレンダリングを行いますunicode symbols as icons。 (UITableViewCellStyleValue1で)のWi-Fi設定のページを模倣

enter image description here

@"\u2611", @"\u2B1C", @"\u2705", @"\u26AB", @"\u26AA", @"\u2714", @"\U0001F44D", @"\U0001F44E" 

:ここ

は、他のいくつかのシンボルです

enter image description here

cell.textLabel.text = @"\u2001 Wi-Fi 1"; 
cell.detailTextLabel.text = @"\U0001F512 \u268A"; 

cell.textLabel.text = @"\u2001 Wi-Fi 2"; 
cell.detailTextLabel.text = @"\U0001F512 \u268C"; 

cell.textLabel.text = @"\u2713 Wi-Fi 3"; 
cell.detailTextLabel.text = @"\U0001F513 \u2630"; 
+0

私は最初の投稿を見ていますが、完全な答えがあり、残りは低い投票を受けています... –

+1

ちなみに、Swiftでは、Unicode文字には中括弧を使用する必要があります。 u {2713} " –

+0

選択の変更はどうですか?データソースはありますか?追加するために毎回データソースを読み込み、DEappendチェックマークを付ける必要がありますか? detailtextlabelは別の情報を表示するために使用しているため、私はdetailtextlabelを使用できません。 –

-2

いいえ、カスタムセルを作成する必要があります。

+2

カスタムセルがなければ可能です。 –

-4

UITableViewCell reference and Table View Guideをご覧ください。 editingAccessoryTypeプロパティを標準セルスタイルに設定して、UITableViewCellAccessoryCheckmarkに設定します。

+1

カスタムビューを使用することもできます。 –

+6

ドキュメントに応じて: UITableViewCellAccessoryCheckmark セルの右側にチェックマークが付いています。 質問が左側にあることを尋ねます – akshay1188

6

はもちろん、あなたは、例えば

UITableViewCellStyleDefault, 
// Simple cell with text label and optional image view 
//(behavior of UITableViewCell in iPhoneOS 2.x) 

UITableViewCellStyle

を使用:)ことを行うことができます...そしてその「オプションのイメージビュー」でカスタム「チェックマーク」の画像を置きます。

0

ここでそれを行う方法があります。 UIImageViewをセルの左端に配置します。開始時に空白になるようにイメージを設定しないでください。

そこで、このような何かを、あなたはカスタムセルとそののUITableViewCellのクラスをやっていると仮定すると:あなたは右にチェックマークをしたい場合は底がコメントアウト

import UIKit 

class MyCustoTableViewCell: UITableViewCell { 

    @IBOutlet weak var commandOption: UILabel! 
    @IBOutlet weak var checkMarkImage: UIImageView! 

    // Sets a left side checkmark on a cell when selected 
    override func setSelected(selected: Bool, animated: Bool) { 
     super.setSelected(selected, animated: animated) 
     self.checkMarkImage.image = selected ? UIImage(named: "BlueCheck") : .None 
     self.commandOption.font = selected ? UIFont(name: "Avenir-Heavy", size: 22) : UIFont(name: "Avenir-Book", size: 22) 

     // more check mark on the right side 
     // self.accessoryType = selected ? .Checkmark : .None 
    } 
} 

注意です。 super.setSelecdtedメソッドは、ユーザーが表のセルをタップしたときに発生します。あなたはこれも実現していることを確認してください:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
     // do any changes needed here or leave blank if just adding check 
    } 
} 

最後に、あなたが2倍@とあなたの資産フォルダ内の3倍のチェックマークPNG画像資産@ていることを確認してください。この例では「BlueCheck」と呼ばれていますが、チェックマークアセットが呼び出されたときに使用します。

この方法では、ユーザーが新しい行を選択すると、現在のセルにチェックマークが表示されなくなります。

この場合、画像ビューの右側にあるテキストを強調して、選択した行であることをさらに表示します。スウィフトは

0

あなたは顔文字や特殊文字を表示したり、あなたの質問に対する答えは「いいえ」、である