2011-11-25 32 views
1

我想改變IKImageBrowserView的組頭的外觀。 我已經看到我們可以提供一個自定義的CALayer和IKImageBrowserGroupHeaderLayer,但我根本不知道如何使用它(如何獲得圖層的大小,知道該組是否被選中,....)定製IKImageBrowserView組外觀

你有這個指針嗎?

謝謝

回答

1

我今天已經去了這裏,它看起來很合理簡單。然而,需要注意的是,它似乎只適用於IKImageGroupDisclosureStyle組。

這提供了一個很好的粉紅色線沿每組的頂部。看起來,當視圖顯示圖層時,它將圖層的大小調整爲瀏覽器視圖的寬度,因此我在width中放置的bounds對結果沒有影響,但它確實承諾height

- (NSDictionary *) imageBrowser:(IKImageBrowserView *) aBrowser groupAtIndex:(NSUInteger) index 
{ 
    CALayer *headerLayer = [CALayer layer]; 
    headerLayer.bounds = CGRectMake(0.0, 0.0, 100.0, 30.0); 
    CGColorRef colour = CGColorCreateGenericRGB(1.0, 0.5, 0.7, 1.0); 
    headerLayer.backgroundColor = colour; 
    CGColorRelease(colour); 

    return [NSDictionary dictionaryWithObjectsAndKeys: 
     [NSNumber numberWithInt: IKGroupDisclosureStyle], IKImageBrowserGroupStyleKey, 
     headerLayer, IKImageBrowserGroupHeaderLayer, 
    nil]; 
} 

關於「知道該組是否被選中」,我假設你的意思是如果組中的某一項被選中?我會觀察視圖的selectionIndexes的變化,確定選擇哪個或哪些項目,然後確定它們落在哪個組中(使用類似的過程來配置組時,我希望您緩存了!),然後調用reloadData,其中一個組根據是否包含選定的項目返回不同的圖層配置(或其他)。

+0

感謝您的回答。除了一件事外,它工作得很好:展開/摺疊三角形的位置不正確,它們不在組內。你遇到同樣的問題嗎? –