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
,其中一个组根据是否包含选定的项目返回不同的图层配置(或其他)。
感谢您的回答。除了一件事外,它工作得很好:展开/折叠三角形的位置不正确,它们不在组内。你遇到同样的问题吗? –