【问题标题】:customizing IKImageBrowserView group appearance自定义 IKImageBrowserView 组外观
【发布时间】:2011-11-25 11:57:24
【问题描述】:

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

你对此有什么建议吗?

谢谢

【问题讨论】:

    标签: grouping appearance ikimagebrowserview


    【解决方案1】:

    我今天尝试了一下,它看起来相当简单。但是,需要注意的是,它似乎只适用于 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,其中一个组根据是否包含所选项目返回不同的层配置(或其他)。

    【讨论】:

    • 感谢您的回答。它工作正常,除了一件事:展开/折叠三角形的位置不正确,它们不再在组内。您是否遇到同样的问题?
    猜你喜欢
    • 2010-10-19
    • 2012-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-10
    相关资源
    最近更新 更多