2013-10-07 60 views
1

此代碼適用於iOS7,但在iOS6模擬器中運行時,應位於子圖層上方的單元格將位於其下方。insertSublayer將隱藏表格視圖中的單元格

bgLayer = [BackgroundLayer gradientFromColor:COLOR_MID_GRADIENT to:COLOR_GRADIENT]; 
CGRect bottom = self.view.bounds; 
bottom.origin.y = self.view.bounds.size.height-GRADIENT_HEIGHT; 
bottom.size.height = GRADIENT_HEIGHT; 
bgLayer.frame = bottom; 
[self.view.layer insertSublayer:bgLayer atIndex:1]; 

它的作用是用一個tableview在一個視圖的底部放一個漸變層。

但是,漸變的矩形中的單元格將隱藏在它的後面!

我試圖改變索引,但它什麼都不做。另外,insertSublayer:below:也不起作用。

我錯過了什麼?如何將圖層放在表格視圖單元格下面?

謝謝。

+0

在iOS 6和iOS 7中插入之前已經存在多少層? – trojanfoe

+0

其中,我在頂部插入了一個indentical。 – ullstrm

+0

你怎麼知道的? (只是爲了清楚我問**在你的插入之前,圖層**中有多少**已經存在**)。 – trojanfoe

回答

0

你是指在下面,如在「後面」?如果是這樣,請設置tableview的backgroundView,並根據需要修改它。 (層,子等),它會一直出現在單元格後面

+0

謝謝,我將視圖本身添加了圖層,而不是tableView的backgroundView。 – ullstrm

+0

不!背景視圖是靜態的,滾動時不遵循表格視圖。這將意味着我的漸變處於靜態位置。如何將實際圖層添加到tableview? :/ – ullstrm

+0

沒錯,它是靜態的。但是tableview背後的視圖也是靜態的。如果你想讓它跟你的tableview一起滾動,你需要爲它創建一個聰明的解決方案。我不會直接向tableview本身添加視圖(誰知道tableview如何管理它的子視圖) – GreatWiz

1

感謝trojanfoe我指出了正確的方向。

我設法讓它工作,手動更改衝突層的zPosition。儘管我必須在viewDidAppear中運行添加圖層代碼,而不是iOS6的viewWillAppear。不要問我爲什麼,我想這與在viewWillAppear之後發生的細胞渲染有關。

相關問題