IBにUITableView
を追加し、「delegate」と「datasource」を設定しましたが、すべて正常に機能しています。次にしたいのは、セパレータの色を変更することでしたが、これを行うための唯一の方法は、デリゲートコールバックの1つにメソッドを追加することでした。これを置くべきより良い場所はありますか?
現時点ではこれはありませんが、IBのUITableView
にリンクし、viewDidload
に区切り色を設定できるコントローラーから「iVar」を追加する必要があると考えていました。
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView setSeparatorColor:[UIColor blackColor]];
return 65;
}
- (void)viewDidLoad
{
[self.tableView setSeparatorColor:[UIColor myColor]];
}
これがお役に立てば幸いです。アクセスするにはself.
が必要です。
Swift 4.2
tableView.separatorColor = UIColor.red
これで、IBで直接実行できるようになります。
ただし、質問が最初に投稿されたときにこれが利用可能だったかどうかはわかりません。
Swiftバージョン:
override func viewDidLoad() {
super.viewDidLoad()
// Assign your color to this property, for example here we assign the red color.
tableView.separatorColor = UIColor.redColor()
}
UITableViewの+(instancetype)appearanceを試してください:
Objective-C:
[[UITableView appearance] setSeparatorColor:[UIColor blackColor]]; // set your desired colour in place of "[UIColor blackColor]"
Swift 3.0:
UITableView.appearance().separatorColor = UIColor.black // set your desired colour in place of "UIColor.black"
注:変更は、アプリケーションで使用されるすべてのテーブルに反映されます。
すべてのセパレータに同じ色を設定したいだけで不透明な場合は、次を使用できます。
self.tableView.separatorColor = UIColor.redColor()
セパレータに異なる色を使用する場合、セパレータの色をクリアする場合、またはアルファ付きの色を使用する場合。
注意:デフォルト色のセパレータにbackgroundViewがあることを知っておく必要があります。
変更するには、次の関数を使用できます。
func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
if(view.isKindOfClass(UITableViewHeaderFooterView)){
var headerView = view as! UITableViewHeaderFooterView;
headerView.backgroundView?.backgroundColor = myColor
//Other colors you can change here
// headerView.backgroundColor = myColor
// headerView.contentView.backgroundColor = myColor
}
}
func tableView(tableView: UITableView, willDisplayFooterView view: UIView, forSection section: Int) {
if(view.isKindOfClass(UITableViewHeaderFooterView)){
var footerView = view as! UITableViewHeaderFooterView;
footerView.backgroundView?.backgroundColor = myColor
//Other colors you can change here
//footerView.backgroundColor = myColor
//footerView.contentView.backgroundColor = myColor
}
}
それが役に立てば幸い!