1

我正在尝试更改 IKImageBrowserView 的组标题的外观。我已经看到我们可以提供带有 IKImageBrowserGroupHeaderLayer 的自定义 CALayer 但我根本不知道如何使用它(如何获取图层的大小,知道是否选择了组,....)

你对此有什么指示吗?

谢谢

4

1 回答 1

1

我今天尝试了一下,它看起来相当简单。然而,重要的是要注意,它似乎只适用于IKImageGroupDisclosureStyle组。

这在每个组的顶部提供了一条漂亮的粉红色线。似乎当视图显示图层时,它会将图层的大小调整为浏览器视图的宽度,所以我输入的内容widthbounds结果没有影响,但是它确实很荣幸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一个根据是否包含所选项目,返回不同层配置(或其他)的组。

于 2012-01-04T04:57:40.070 回答