Как использовать групповое отображение IKImagebrowserView?

Эффект, который я хочу, похож на отображение группы iPhoto (или временной шкалы).

Я уже понял общий IKImageBrowserView. который как

Но я не знаю, как распределить их по разным группам.

Я упоминал: настройка внешнего вида группы IKImageBrowserView, которая, возможно, является единственным сообщением в stackru.

Я использовал 4 метода IKImageBrowserDataSource,

- (NSUInteger)numberOfItemsInImageBrowser:(IKImageBrowserView *)browser;
- (id)imageBrowser:(IKImageBrowserView *)browser itemAtIndex:(NSUInteger)index;
- (NSUInteger)numberOfGroupsInImageBrowser:(IKImageBrowserView *)browser;
- (NSDictionary *)imageBrowser:(IKImageBrowserView *)browser groupAtIndex:(NSUInteger)index;

Я думаю, что я не знаю, как написать код для последних 2 методов.

1 ответ

Решение

Вам определенно нужно реализовать эти два последних метода для появления групп. Если вы просто хотите увидеть эффект, вы можете сделать что-то вроде этого:

- (NSUInteger) numberOfGroupsInImageBrowser:(IKImageBrowserView *) aBrowser
{
    return 1;
}
- (NSDictionary *) imageBrowser:(IKImageBrowserView *) aBrowser groupAtIndex:(NSUInteger) index
{
    NSRange r = {0, 3};
    return @{IKImageBrowserGroupRangeKey: [NSValue valueWithRange:r],
             IKImageBrowserGroupBackgroundColorKey: [NSColor redColor],
             IKImageBrowserGroupStyleKey: [NSNumber numberWithInt:IKGroupDisclosureStyle]};
}

Важный ключ в каталоге, возвращаемом groupAtIndex: IKImageBrowserGroupRangeKey, Это описывает, какой диапазон изображений в данной группе. Обратите внимание, что NSRange является структурой и не является производным от NSObject, поэтому его нельзя использовать в качестве значения в словаре. Следовательно, он должен быть преобразован в NSValue.

Для того, чтобы это было действительно полезным, вам нужно будет кэшировать ваш набор значений диапазона и предоставить механизм группировки и разгруппирования изображений, но я надеюсь, что этого достаточно, чтобы вы начали

Другие вопросы по тегам