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];
}

「グループが選択されているかどうかを知る」ということは、グループ内の項目の1つが選択されているということですか?ビューの変更を観察し、selectionIndexes選択された1つまたは複数のアイテムを判別し、次にそれらがどのグループに分類されるかを判別し(グループをIKImageBrowserGroupRangeKey構成するときに提供した方法と同様のプロセスを使用して、キャッシュしたことを願っています!)、1つで呼び出しreloadDataます選択したアイテムが含まれているかどうかに基づいて、異なるレイヤー構成(またはその他)を返すグループの数。

于 2012-01-04T04:57:40.070 に答える