我正在尝试更改 IKImageBrowserView 的组标题的外观。我已经看到我们可以提供带有 IKImageBrowserGroupHeaderLayer 的自定义 CALayer 但我根本不知道如何使用它(如何获取图层的大小,知道是否选择了组,....)
你对此有什么指示吗?
谢谢
我正在尝试更改 IKImageBrowserView 的组标题的外观。我已经看到我们可以提供带有 IKImageBrowserGroupHeaderLayer 的自定义 CALayer 但我根本不知道如何使用它(如何获取图层的大小,知道是否选择了组,....)
你对此有什么指示吗?
谢谢
我今天尝试了一下,它看起来相当简单。然而,重要的是要注意,它似乎只适用于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
变化,确定哪些项目或哪些项目被选中,然后确定它们属于哪个组(使用与IKImageBrowserGroupRangeKey
配置组时提供的类似过程,我希望你已经缓存了!)并调用reloadData
一个根据是否包含所选项目,返回不同层配置(或其他)的组。