2012-07-27 22 views
0

我有一些'n'個單元格的表格視圖。我的問題是單元格的背景圖片!使用背景顏色方法設置單元格的背景圖像不起作用

我已經知道的事實,UITableViewCell蘋果文件明確表示:

注意:如果你想改變一個單元格的背景顏色(由通過backgroundColor屬性設置單元格的背景顏色由UIView聲明),您必須在tableView:willDisplayCell:forRowAtIndexPath:委託的方法中執行此操作,而不是在數據源的tableView:cellForRowAtIndexPath:中執行此操作。

上面的描述還可以看出here

但我關心的不是改變細胞的顏色,而是它是因爲我們知道我們可以利用的cell.As設置背景圖片背景顏色屬性設置背景圖片,即:

if (cell == nil) 
{ 
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kCellIdentifier] autorelease]; 
    cell.backgroundColor = [[UIColor alloc]initWithPatternImage:[UIImage imageNamed:@"buttonbg.png"]]; 
} 

但是使用的背景顏色爲背景圖片設置爲表視圖細胞不能正常工作 ,當我試圖改變形象,但沒有顏色,沒有按爲何上述方法/屬性在數據源方法中工作d(在索引路徑上行的單元格)

另外令我驚訝的是,我發現使用圖像視圖並將視圖設置爲單元格的背景視圖完美,並且由Mr.Ammy Worral在link中提出了相同的建議。即:

UIImage *cellImage = [UIImage imageNamed:kCellImage]; 
UIImageView *cellImageView = [[UIImageView alloc]initWithImage:cellImage]; 
[cell setBackgroundView:cellImageView]; 

但我的疑問是,爲什麼不與細胞的背景色方法的背景圖像的工作!

需要一些解釋!

感謝所有提前:)

回答

1

它不工作,因爲做的UITableView該單元格的外觀做一些修改你的cellForRowAtIndexPath返回後吧:解決方案是繼承你的單元格並覆蓋layoutSubviews方法並在那裏進行定製。

+0

感謝您的迴應,我明白了您的觀點,但即使在tableView:willDisplayCell:forRowAtIndexPath:方法中,UITableView也會進行修改na,那麼爲什麼在cellForRowAtIndexPath方法中沒有任何影響 – 2012-07-27 06:30:28

+0

@EshwarChaitanya你試過這個嗎?它不工作嗎? – 2012-07-27 06:35:44

+0

我不是在詢問子類化和你給Mr.H2CO3的解決方案,我正在談論你爲什麼背景顏色屬性在數據源方法中不起作用的原因!正如你所說的,tableView在細胞外觀上做了一些修改,類似的應用在委託方法也na即的tableView:willDisplayCell:forRowAtIndexPath:爲什麼在數據源的方法這裏,而不是做的顏色屬性的工作,我問一下,謝謝:) – 2012-07-27 06:48:01

1

tableview將自動設置單元格的背景顏色。它確實是AFTER -tableView:cellForRowAtIndexPath:,當然:) 你有兩個選擇: 1)在你的單元格中添加一個額外的視圖並設置它的背景顏色(幾乎你所做的) 2)implement -tableView :willDisplayCellAtIndexPath:在你的數據源/委託(或者這些行之間的東西,cf蘋果文檔的確切名稱),並手動設置單元格的背景顏色。

+0

對不起Mr.kra我特別提到我的擔心不是關於設定/更改背景單元格的顏色,而不是它的單元格的背景顏色屬性的設置圖像,請再次通過我的帖子和我留在下面的評論先生H2CO3的答案,所以這將是很清楚:) – 2012-07-27 09:05:00

+0

我明白你的後,你想設置單元格的背景顏色。事實上,顏色實際上是一個模式圖像在這裏是不相關的:)這個表格將單元格的顏色設置爲它自己的AFTER cellForRowAtIndexPath。之所以這麼做是因爲它需要一個單元格來改變單元格的背景。因此,在cellForRow中設置顏色將不起作用,因爲表將覆蓋該顏色。任何後來的電話都可以工作(例如,willDisplayCellAtIndexPath工作正常) – kra 2012-07-27 18:22:42

+0

是的瞭解和Mr.H2CO3使我更清楚,任何如何+1的答案和關注,謝謝:) – 2012-07-30 05:16:33