1
我想改變IKImageBrowserView的組頭的外觀。 我已經看到我們可以提供一個自定義的CALayer和IKImageBrowserGroupHeaderLayer,但我根本不知道如何使用它(如何獲得圖層的大小,知道該組是否被選中,....)定製IKImageBrowserView組外觀
你有這個指針嗎?
謝謝
我想改變IKImageBrowserView的組頭的外觀。 我已經看到我們可以提供一個自定義的CALayer和IKImageBrowserGroupHeaderLayer,但我根本不知道如何使用它(如何獲得圖層的大小,知道該組是否被選中,....)定製IKImageBrowserView組外觀
你有這個指針嗎?
謝謝
我今天已經去了這裏,它看起來很合理簡單。然而,需要注意的是,它似乎只適用於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
,其中一個組根據是否包含選定的項目返回不同的圖層配置(或其他)。
感謝您的回答。除了一件事外,它工作得很好:展開/摺疊三角形的位置不正確,它們不在組內。你遇到同樣的問題嗎? –