0

ばかげた質問をするつもりですが、何か答えを教えてください。

テーブルビューがある場合、テーブルビューの背景色を設定したいのですcolorが、値がという名前の文字列があります"gray Color"

string を使用してテーブル ビューの背景色を設定する方法color

明確にするために、私に戻ってください。

ありがとう。

4

3 に答える 3

1

開始するために使用できるコードを次に示します。UIColor'sコードを短くクリーンに保つために、すべてのクラスの色を使用しました。「灰色の色」など、他のカスタム色の名前を決定する必要がある場合は、処理する色ごとに長いif句とifステートメントを記述する必要があります。

- (void)viewDidLoad
{
    [super viewDidLoad];

    // statically add UIColor class names (for sake of simplicity)
    self.colors = [NSArray arrayWithObjects:@"blackColor", 
                                            @"darkGrayColor",
                                            @"lightGrayColor",
                                            @"whiteColor",
                                            @"grayColor",
                                            @"redColor",
                                            @"greenColor",
                                            @"blueColor",
                                            @"cyanColor",
                                            @"yellowColor",
                                            @"magentaColor",
                                            @"orangeColor",
                                            @"purpleColor",
                                            @"brownColor",
                                            @"aColor",
                                            @"lightTextColor",
                                            @"darkTextColor",
                                            @"groupTableViewBackgroundColor",
                                            @"viewFlipsideBackgroundColor",
                                            @"scrollViewTexturedBackgroundColor",
                                            @"underPageBackgroundColor",
                                            nil];
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (!cell)
    {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }

    NSString *colorName = [self.colors objectAtIndex:indexPath.row];
    SEL colorSelector  = NSSelectorFromString(colorName);
    if ([UIColor respondsToSelector:colorSelector])
    {
        UIColor *cellColor = [UIColor performSelector:colorSelector];
        const CGFloat *componentColors = CGColorGetComponents(cellColor.CGColor);
        int numComponents = CGColorGetNumberOfComponents(cellColor.CGColor);

        // get inverse color for cell text 
        UIColor *inverseColor = [UIColor whiteColor];
        if (numComponents == 4)
        {
            inverseColor = [[[UIColor alloc] initWithRed:(255 - 255 * componentColors[0])
                                                  green:(255 - 255 * componentColors[1])
                                                   blue:(255 - 255 * componentColors[2])
                                                  alpha:componentColors[3]] autorelease];            
        } else if (numComponents == 2) {
            inverseColor = [[[UIColor alloc] initWithRed:(255 - 255 * componentColors[0])
                                                   green:(255 - 255 * componentColors[0])
                                                    blue:(255 - 255 * componentColors[0])
                                                   alpha:componentColors[1]] autorelease];    
        }


        cell.contentView.backgroundColor = cellColor;
        cell.textLabel.textColor = inverseColor;
        cell.textLabel.text = colorName;

    } else {
        cell.contentView.backgroundColor = [UIColor whiteColor];        
        cell.textLabel.text = [NSString stringWithFormat:@"Unknown color (%@)", colorName];
        cell.textLabel.textColor = [UIColor blackColor];
    }
    cell.textLabel.backgroundColor = cell.contentView.backgroundColor;

    return cell;
}

色付きのuitableviewセル

于 2012-05-10T13:28:44.023 に答える
0

iPhone アプリケーションで UITableView の背景色を変更するには、特定のコード行を tableView の cellForRowAtIndexPath に記述するだけです。

 tableView.backgroundColor = [UIColor grayColor];

//選択した背景色を設定するには

UIImageView *selectedBackground = [[UIImageView alloc] initWithFrame:CGRectMake(0,0, 320,100)];
selectedBackground.backgroundColor = [UIColor orangeColor];
[cell setSelectedBackgroundView:selectedBackground];

サンプル画像の場合....

ここに画像の説明を入力

ここに画像の説明を入力

于 2012-05-10T12:07:08.417 に答える