1

こんにちは、ios にはかなり慣れていないので、まだ学ぶことがたくさんあります。動的な背景色を持つサブビューを Web サービスからテーブル セルに追加しますが、サブビューの背景色を選択すると、テーブル セルの選択状態の色に変わります。理由はわかっています。ビュー内のすべてのサブビューの背景色を変更するときにこれを行うと、サブビューの背景色も変更しないようにする方法がわかりません。選択した動的な色のままにしたいですか?

array = [colors objectAtIndex:indexPath.row];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];

if (cell == nil)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
        cell.selectionStyle = UITableViewCellSelectionStyleNone;

        UIView *colorBox = [[UIView alloc] initWithFrame:CGRectMake(10,10,20,20)];
        [colorBox setTag:1];            
        [cell.contentView addSubview:colorBox];
    }

 UIView *box = [cell viewWithTag:1];
 box.backgroundColor = [self colorForBox:array.color];

 return cell;

そして色を取得します

- (UIColor *)colorForTransport:(NSString*)Line {

if([Line isEqualToString:@"Brown"])
    return [UIColor colorWithRed:0.682 green:0.38 blue:0.094 alpha:1];

else if([Line isEqualToString:@"Red"])
    return [UIColor colorWithRed:0.894 green:0.122 blue:0.122 alpha:1];

else
    return DefaultBackgroundColor;
}

どんな助けでも大歓迎ですありがとう!

4

4 に答える 4

0

tablecellviewのselectedBackgroundViewサブビューを変更して、探している色の変更を取得してみてください。

このプロパティの詳細については、http://developer.apple.com/library/ios/documentation/uikit/reference/UITableViewCell_Class/Reference/Reference.html#//apple_ref/occ/instp/UITableViewCell/selectedBackgroundViewを参照してください。

于 2012-12-11T18:45:46.443 に答える
0

プレーン スタイルのテーブルを使用している場合は、目的の背景色を持つ新しい UIView を割り当て初期化し、それを selectedBackgroundView に割り当てる必要があります。

または、

cell.selectionStyle = UITableViewCellSelectionStyleGray;
于 2012-12-11T19:00:53.243 に答える
0

UIView を継承した新しいサブクラスを作成できます。次に setBackgroundColor をオーバーライドして何もしないようにします。背景色を設定する独自のメソッドを追加します。そうすれば、システムは背景色をオーバーライドできなくなり、新しい方法を使用して任意の色を設定できます:)

-(void) setBackgroundColor:(UIColor *)backgroundColor
{
    //do nothing
}

//System do not know this method :)
-(void) mySetBackgroundColor:(UIColor *)backgroundColor
{
    [super setBackgroundColor:backgroundColor];
}
于 2013-09-11T15:42:30.473 に答える