24

テーブル ビューのデフォルトの青色選択をカスタム カラーに変更する必要があります。それを行う方法はありますか。助けて

4

5 に答える 5

61

これを行う最良の方法は次のとおりです。

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"myCellId";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
        UIView *v = [[[UIView alloc] init] autorelease];
        v.backgroundColor = [UIColor redColor];
        cell.selectedBackgroundView = v;
    }
    // Set up the cell...
    cell.textLabel.text = @"foo";
    return cell;
}

あなたに関連する部分はcell.selectedBackgroundView = v;指示です。ここの非常に基本的なビュー 'v' を、好きなビューに置き換えることができます。

于 2009-09-28T09:34:33.213 に答える
6

また、グループ化されたセルのカスタム選択セル ビューを作成しようとすると、この問題に遭遇しました。真ん中のセルがあることを想定して、セルの上、中、下の3種類の画像を作成することで、この問題を解決しました。

NSString *imageFile;

if (row == 0) {
 imageFile = @"highlighted_cell_top.png";
} else if (row == ([registeredDetailsKeys count] - 1)) {
 imageFile = @"highlighted_cell_bottom.png";
} else {
 imageFile = @"highlighted_cell_middle.png";
}

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:imageFile]];

cell.selectedBackgroundView = imageView;

もっと簡単な方法があるかもしれませんが、結果には満足しています。

于 2010-11-25T10:57:41.903 に答える
3

ヘッダーで宣言した後に確認してください

@property(nonatomic) UITableViewCellSelectionStyle selectionStyle

埋め込む

cell.selectionStyle = UITableViewCellSelectionStyleGray

、、がどこにUITableViewCellSelectionStyleGrayできるか。UITableViewCellSelectionStyleNoneUITableViewCellSelectionStyleBlueUITableViewCellSelectionStyleGray

于 2011-02-10T10:52:03.437 に答える
3

カスタムカラーは使えないと思います。ただし、UITableViewCell の次のプロパティを使用できます。

@property(nonatomic) UITableViewCellSelectionStyle selectionStyle

選択スタイルは、選択時のセルの色を決定する backgroundView 定数です。デフォルト値は UITableViewCellSelectionStyleBlue です。以来

typedef enum {
   UITableViewCellSelectionStyleNone,
   UITableViewCellSelectionStyleBlue,
   UITableViewCellSelectionStyleGray
} UITableViewCellSelectionStyle;

デフォルトの青から灰色に切り替えるか、色付きの選択をまったく行わないようにすることができます。

于 2009-09-28T06:56:34.460 に答える
0

それを行う別の方法は、セルの新しいビューに移動することです。任意の色と 50% 程度の不透明度を使用します。-setSelected:animated: 呼び出しを取得すると、このビューをセルに移動します。移動と言うと、実際には常にセルの上にビューを表示できますが、必要に応じて非表示のビットをオンまたはオフにするだけです。

于 2009-09-28T07:14:24.907 に答える