UITableViewのチェックマークの色を変更する方法を教えてくれる人がいますか?
検索しましたが、機能しないようです。
乾杯
Appleは、チェックマークの色を変更する一般的な方法を提供していないため、画像を使用して色を変更する必要があります。
これは非常に簡単です。セルのaccesoryViewプロパティを、正しい色のチェックマークを含むUIImageViewに設定するだけです。
次のようになります。
UIImageView *checkmark = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"coloredCheckmark.png"]];
cell.accessoryView = checkmark;
[checkmark release];
楽しい!
受け入れられた答えからiOS SDKが変更されたので、新しい答えで更新するだけだと思いました。
実際、UITableViewCell.
のUITableViewCell
プロパティを調整することにより、tintColor
のチェックマークの色を変更できます。
すべてのUITableViewCellsに外観プロキシを設定して、特に指定がない限り、すべてのインスタンスが特定の色合いを持つようにすることもできます。
[[UITableViewCell appearance] setTintColor:[UIColor redColor]];
Swiftバージョンを探している場合:
たとえば、tableView(_:,cellForRowAtIndexPath:)
cell.tintColor = UIColor.redColor()
UITableViewCell.appearance().tintColor = UIColor.redColor()
以下はiOS 7で機能しました。
[self.tableView setTintColor:[UIColor someColor]];
この画像は、ストーリーボードでこれを行う方法を示しています。色合いの色はチェックマークの色です。
Igraczechの答えはほとんど正しいことがわかりましたが、iOS 6以降では、tableview全体の色合いを設定するだけで、デフォルトのアイテムが継承されます。
[self.tableView setTintColor:[UIColor someColor]];
これでうまくいき、チェックマークに色を付けることができました。
IOS 7以降では、View Controllerのビューの色合いを設定して、この色合いのコローがすべての子ビューに表示されるようにすることができます。したがって、UITableViewCellのチェックマークを(たとえば)紫色に設定するには、viewWillAppearメソッドで以下を行う必要があります。
[self.view setTintColor:[UIColor purpleColor]];
UITableViewCell *cell=(UITableViewCell*)[tableView dequeueReusableCellWithIdentifier:@"CellIdentifier" forIndexPath:indexPath];
cell.tintColor=UIColor.whiteColor;
return cell;
UIAccessoryTypeCheckmark(右側)は、tableviewの背景色を継承します。
self.tableView.backgroundColor = [UIColor clearColor];
私はいつもこの簡単な方法を使用しました:
UITableViewCell *cell = ...;
cell.tintColor = [UIColor greenColor];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
- (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;
}
それは私のために働く。
#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;
上記の答えはすべて素晴らしいです。しかし、あなたがそれをグローバルにやりたいなら、ただ
UITableViewCell.appearance().tintColor = .green
素敵な小さなトリック:)
独自の画像を使用する必要はありません。次のコードで読み込んだビューで単に変更できます。
[self.tableView setTintColor:[UIColor colorWithRed:250/255.0 green:223/255.0 blue:6/255.0 alpha:1]]
乾杯!
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
}