【发布时间】:2011-11-25 11:57:24
【问题描述】:
我正在尝试更改 IKImageBrowserView 的组标题的外观。 我已经看到我们可以提供一个带有 IKImageBrowserGroupHeaderLayer 的自定义 CALayer 但我完全不知道如何使用它(如何获取层的大小,知道是否选择了组,...)
你对此有什么建议吗?
谢谢
【问题讨论】:
标签: grouping appearance ikimagebrowserview
我正在尝试更改 IKImageBrowserView 的组标题的外观。 我已经看到我们可以提供一个带有 IKImageBrowserGroupHeaderLayer 的自定义 CALayer 但我完全不知道如何使用它(如何获取层的大小,知道是否选择了组,...)
你对此有什么建议吗?
谢谢
【问题讨论】:
标签: grouping appearance 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 进行更改,确定选择了哪些项目,然后确定它们属于哪个组(使用与配置组时提供IKImageBrowserGroupRangeKey 的过程类似的过程,我希望你已经缓存了!)并调用reloadData,其中一个组根据是否包含所选项目返回不同的层配置(或其他)。
【讨论】: