2011-12-27 59 views
1

我正在處理我的應用程序的iPad版本,並且遇到問題。我想做出UItableViewUIView具有多種視覺效果:UIView多重效果

  • 圓角半徑(3px的)
  • 內陰影(黑色,20%,10px的)
  • 陰影(黑色,30%, 5px)

結果必須與iPad上內置的Reminders.app類似。這是我想做的acheive一個Photoshop預覽:

正如你可以看到(如果不能,打開100%縮放這一形象),有UITableView左側和UIView上正確的。兩個視圖都有角落半徑,內部和陰影。 (我試圖用layer.cornerRadiuslayer.shadow...來做到這一點,我的TableView已經失去了它的性能),我怎麼能實現這個效果,而不失去性能。

任何幫助,將不勝感激。

+0

實際上,最簡單和最快的方法是使用圖像,並使backgroundColor =清除顏色; – samfisher 2011-12-27 12:30:25

+0

但我希望這些視圖以編程方式來改變它們的框架。圖像將被分散。 – akashivskyy 2011-12-27 15:16:26

+0

他們爲什麼會扭曲?您可以定義圖像的哪一部分應該用stretchStringWithLeftCapWidth:topCapHeight:來拉伸。所以你可以定義一個像素大小,整個heigt重複加上底部和圖像的頂部 – Bastian 2011-12-27 20:54:58

回答

1

在一個圖層上設置shadowPath是良好性能的關鍵。它接受CGPath,所以像self.tableView.layer.shadowPath = [UIBezierPath bezierPathWithRect:self.tableView.bounds].CGPath;應該有相當大的幫助。

+1

你沒有回答我的問題...如何使3個效果**一次**? – akashivskyy 2011-12-27 22:39:30

+0

我在解決您對原始嘗試期間的性能問題。內在陰影很難,而不需要自己繪製。只需在表視圖的圖層上設置這些屬性即可實現投影和角半徑。對於內部陰影,您可以在透明圖像上創建可伸展的黑色,並且可以擴展到任何幀。在適當的框架中創建一個包含陰影的圖像,並將其設置爲新的「CALayer」的內容。將該圖層添加爲表格視圖圖層的子圖層。您可能需要在UIKit級別工作來處理動畫以更改幀。 – 2011-12-27 23:09:34

+0

好吧,我創建了一個UIImageView並將其添加到表視圖上方。但是當我旋轉我的iPad框架屬性有一點點醜陋的動畫。它不流利..有什麼建議嗎? – akashivskyy 2011-12-28 09:07:54