Как использовать групповое отображение 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.
Для того, чтобы это было действительно полезным, вам нужно будет кэшировать ваш набор значений диапазона и предоставить механизм группировки и разгруппирования изображений, но я надеюсь, что этого достаточно, чтобы вы начали