web-dev-qa-db-ja.com

UITableView、設定する区切り色

IBにUITableViewを追加し、「delegate」と「datasource」を設定しましたが、すべて正常に機能しています。次にしたいのは、セパレータの色を変更することでしたが、これを行うための唯一の方法は、デリゲートコールバックの1つにメソッドを追加することでした。これを置くべきより良い場所はありますか?

現時点ではこれはありませんが、IBのUITableViewにリンクし、viewDidloadに区切り色を設定できるコントローラーから「iVar」を追加する必要があると考えていました。

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    [tableView setSeparatorColor:[UIColor blackColor]];
    return 65;
}
152
fuzzygoat
- (void)viewDidLoad
{
   [self.tableView setSeparatorColor:[UIColor myColor]];
}

これがお役に立てば幸いです。アクセスするにはself.が必要です。

Swift 4.2

tableView.separatorColor = UIColor.red
313
Helen

これで、IBで直接実行できるようになります。

ただし、質問が最初に投稿されたときにこれが利用可能だったかどうかはわかりません。

enter image description here

55
Myxtic

Swiftバージョン:

override func viewDidLoad() {
    super.viewDidLoad()

    // Assign your color to this property, for example here we assign the red color.
    tableView.separatorColor = UIColor.redColor()
}
24
King-Wizard

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"

注:変更は、アプリケーションで使用されるすべてのテーブルに反映されます。

11
Nitesh Borad

Swift 3、xcodeバージョン8.3.2、ストーリーボード->テーブルを選択しますView-> inspector-> Separator。

Swift 3, xcode version 8.3.2

2
Giang

すべてのセパレータに同じ色を設定したいだけで不透明な場合は、次を使用できます。

 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
        }
    }

それが役に立てば幸い!

2
ezefire