2013-07-06 61 views
3

試圖創建一個分組的tableview與沒有任何邊界的trasnparent單元。 Tableview從上到下的背景顏色從深到淺。IOS分組的tableview透明單元

但某種程度上,tableview單元只反映了較暗的背景圖像的頂部。

我已經嘗試了從stackoverflow噸的噸,但他們都沒有工作,couldnt找到解決這個問題。

它應該是什麼樣子:

enter image description here

它看起來像什麼我的代碼:

enter image description here

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    [self.tableView setBackgroundView:nil]; 
    self.tableView.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"menu_background.png"]]; 
} 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    cell.backgroundColor=[UIColor clearColor]; 
    cell.backgroundView=[[UIView alloc] initWithFrame:CGRectZero]; 

// UIView *backView = [[UIView alloc] initWithFrame:CGRectZero]; 
// backView.backgroundColor = [UIColor clearColor]; 
// cell.backgroundView = backView; 

// [[cell contentView] setBackgroundColor:[UIColor clearColor]]; 
// [[cell backgroundView] setBackgroundColor:[UIColor clearColor]]; 
// [cell setBackgroundColor:[UIColor clearColor]]; 

// cell.backgroundColor = [UIColor clearColor]; 
// cell.backgroundView.backgroundColor = [UIColor clearColor]; 

// cell.contentView.backgroundColor = [UIColor clearColor]; 
// cell.backgroundColor = [UIColor clearColor]; 
// UIView *bgView = [[UIView alloc] init]; 
// [[bgView layer] setCornerRadius:10.0f]; 
// [bgView setBackgroundColor:[UIColor colorWithWhite:1.0f alpha:0.25f]]; 
// cell.backgroundView = bgView; 
//  
    return cell; 
} 

我缺少什麼?這是什麼解決方案?

感謝, 空間

+0

你的圖片在哪裏? –

+0

@NishantTyagi我可以看到圖像沒有任何問題 –

+0

add yourtable.backgroundView = nil;在你的委託方法cellForRowAtIndexPath中。我正在談論你在你的問題中附加的圖像。 –

回答

2

UPDATE事實證明,這會做的伎倆爲分組表:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    cell.backgroundColor = [UIColor clearColor]; 
    cell.layer.backgroundColor = [UIColor clearColor].CGColor; 
} 

你剛剛設置單元格的層背景顏色除了設置單元格的背景顏色。

ORIGINAL如果你可以使用未分組(我沒有看到你的樣機需要分組風格的任何東西),下面應該工作:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    cell.backgroundColor = [UIColor clearColor]; 
} 

我不知道一個解決方案爲分組除了通過將背景分解爲瓦片並將瓦片放入行中來僞造它。平鋪的方法實際上可以在舊設備上提供更好的滾動性能。

+0

我最終這樣做,它的工作原理,但我想知道爲什麼分組tableview導致該問題,我在我的代碼中使用了很多分組表格視圖,我不想在將來遇到類似問題 –

+0

我的更新解決方案是否適合您? –

+0

更新的解決方案也沒有工作,我只會使用普通的tableview。 –

0

你做了什麼是正確的,但嘗試通過設置單元格的背景視圖爲零以使單元格完全透明。 如果你使用分組tableview和單元格的UITableViewCell的子類,通過設置背景視圖爲「無」使邊框消失
cell.backgroundView = nil;

試試這一次,不知道

1

也許你故意留下了這一點,但你是如何讓你的新細胞,你dequeing呢?它是一個自定義單元嗎?假設它是一個標準的電池我會嘗試:

[[cell imageView] setBackgroundColor:[UIColor clearColor]]; 

,我會保持

[cell setBackgroundColor:[UIColor clearColor]]; 

另一個想法是將其設置爲白色,設置透明度爲0,所以在很明顯的結束,但這並不是最好的解決方案。

也許這會工作?我沒有試圖重新創建這個問題來測試這個解決方案。 如果它是一個自定義的UITableViewCell,那麼我只需在xib中設置屬性即可。