2012-12-11 76 views
1

您好所有即時通訊相當新的ios,所以仍然有很多東西要學習,即時通訊從動態背景顏色從webservice添加到表格單元格,但在選擇子視圖背景顏色是改變爲表格單元格選擇狀態顏色,我知道爲什麼它這樣做,因爲它改變了所有的子視圖背景顏色的視圖內,我似乎不能改變子視圖的背景色,以及如何阻止它,我想它仍然是選擇的動態顏色?在UITableViewCell背景顏色選擇目標c子視圖

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

任何幫助將不勝感激謝謝!

+0

我不明白的問題。你想阻止什麼? – Lefteris

回答

0

,如果您使用的是普通的樣式表,那麼你需要的alloc-初始化一個新的UIView有你想要的背景顏色,然後將其分配給selectedBackgroundView 。

或者類似的東西,

cell.selectionStyle = UITableViewCellSelectionStyleGray; 
0

您可以創建新的子類,可以從UIView的繼承。 然後覆蓋setBackgroundColor不做任何事。 並添加您自己的設置背景顏色的方法。在這樣的系統將不能夠覆蓋你的背景顏色,你可以使用你的新方法:)

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

//System do not know this method :) 
-(void) mySetBackgroundColor:(UIColor *)backgroundColor 
{ 
    [super setBackgroundColor:backgroundColor]; 
} 
0

的UITableViewCell上選擇改變的backgroundColor所有子視圖出於某種原因設置任何顏色。

這可能幫助:

DVColorLockView

相關問題