web-dev-qa-db-ja.com

UITableViewのチェックマークの色を変更

UITableViewのチェックマークの色を変更する方法を教えてくれる人がいますか?

検索しましたが、機能しないようです。

乾杯

54
PeterK

Appleは、チェックマークの色を変更する一般的な方法を提供していないため、画像を使用して色を変更する必要があります。

これは非常に簡単です。セルのaccesoryViewプロパティを、正しい色のチェックマークを含むUIImageViewに設定するだけです。

次のようになります。

UIImageView *checkmark = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"coloredCheckmark.png"]];
cell.accessoryView = checkmark;
[checkmark release];

楽しい!

42
Andrew Zimmer

受け入れられた答えからiOS SDKが変更されたので、新しい答えで更新するだけだと思いました。

実際、UITableViewCell.UITableViewCellプロパティを調整することにより、tintColorのチェックマークの色を変更できます。

すべてのUITableViewCellsに外観プロキシを設定して、特に指定がない限り、すべてのインスタンスが特定の色合いを持つようにすることもできます。

[[UITableViewCell appearance] setTintColor:[UIColor redColor]];
200
nvrtd frst

Swiftバージョンを探している場合:

セル上に直接

たとえば、tableView(_:,cellForRowAtIndexPath:)

cell.tintColor = UIColor.redColor()

外観プロトコルを使用する

UITableViewCell.appearance().tintColor = UIColor.redColor()
31
mokagio

以下はiOS 7で機能しました。

[self.tableView setTintColor:[UIColor someColor]];
29
Vinicius Souza

この画像は、ストーリーボードでこれを行う方法を示しています。色合いの色はチェックマークの色です。

enter image description here

15
kalan

Igraczechの答えはほとんど正しいことがわかりましたが、iOS 6以降では、tableview全体の色合いを設定するだけで、デフォルトのアイテムが継承されます。

[self.tableView setTintColor:[UIColor someColor]];

これでうまくいき、チェックマークに色を付けることができました。

13
Bill Burgess

IOS 7以降では、View Controllerのビューの色合いを設定して、この色合いのコローがすべての子ビューに表示されるようにすることができます。したがって、UITableViewCellのチェックマークを(たとえば)紫色に設定するには、viewWillAppearメソッドで以下を行う必要があります。

[self.view setTintColor:[UIColor purpleColor]];
8
Raunak
 UITableViewCell *cell=(UITableViewCell*)[tableView dequeueReusableCellWithIdentifier:@"CellIdentifier" forIndexPath:indexPath];
cell.tintColor=UIColor.whiteColor;
return cell;
4

UIAccessoryTypeCheckmark(右側)は、tableviewの背景色を継承します。

self.tableView.backgroundColor = [UIColor clearColor];
3
igraczech

私はいつもこの簡単な方法を使用しました:

UITableViewCell *cell = ...;
cell.tintColor = [UIColor greenColor];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
2
Evsenev
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
HNCustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"HNCustomTableViewCell" forIndexPath:indexPath];
cell.tintColor = [UIColor colorWithRed:0.99 green:0.74 blue:0.10 alpha:1.0];
return cell;
}

それは私のために働く。

2
Antony Wong
#import "UIImage+Color.h"

UIImage *image = [[UIImage imageNamed:@"ic_check_black_24dp.png"] changeColor:CLR_BUY];
UIImageView *checkmark = [[UIImageView alloc] initWithImage:image];
cell.accessoryView = checkmark;
2
Gank

上記の答えはすべて素晴らしいです。しかし、あなたがそれをグローバルにやりたいなら、ただ

UITableViewCell.appearance().tintColor = .green

素敵な小さなトリック:)

独自の画像を使用する必要はありません。次のコードで読み込んだビューで単に変更できます。

[self.tableView setTintColor:[UIColor colorWithRed:250/255.0 green:223/255.0 blue:6/255.0 alpha:1]]

乾杯!

1
Ronaldoh1

Swift 3.1、iOS 9以降

if #available(iOS 9.0, *) {
            UIImageView.appearance(whenContainedInInstancesOf: [UITableViewCell.self]).tintColor = UIColor.themeTint //add your color here 
        } else {
            // Fallback on earlier versions
        }

Result

0
Nitesh Borad