Я пытаюсь настроить IKImageBrowserView для отображения изображений с помощью кнопки на каждом элементе (см. Прилагаемое изображение).Когда пользователь нажимает на кнопку (большой палец вверх), я отмечаю ее как избранную. ImageBrowser с фотографиями
В настоящее время я добился только показа изображения (большой палец вверх) вместо кнопки на каждом элементе.Тем не менее, это не кликабельно, потому что я добавил его в CALayer (я читал, что CALayer не отвечает на события), со следующим кодом:
- (CALayer *)layerForType:(NSString*) type
{
NSRect frame = [self frame];
// foreground layer
if (type == IKImageBrowserCellForegroundLayer)
{
// no foreground layer on place holders
if ([self cellState] != IKImageStateReady)
{
return nil;
}
// create a foreground layer that will contain several childs layer
CALayer *layer = [CALayer layer];
layer.frame = CGRectMake(0, 0, frame.size.width, frame.size.height);
NSRect imageContainerFrame = [self imageContainerFrame];
NSRect relativeImageContainerFrame =
NSMakeRect(imageContainerFrame.origin.x - frame.origin.x,
imageContainerFrame.origin.y - frame.origin.y,
imageContainerFrame.size.width,
imageContainerFrame.size.height);
CALayer *likeDisableLayer = [CALayer layer];
setBundleImageOnLayer(likeDisableLayer, CFSTR("LikeIcon_disable.png"));
likeDisableLayer.frame = CGRectMake((frame.size.width/2)-5, frame.size.height - 25, 24, 30);
[layer addSublayer:likeDisableLayer];
return layer;
}
return nil;
}
Есть несколько потоков с одинаковым вопросом ( this не удается добавить кнопку в слой, это не имеет правильного ответа, это относится к iOS и использует UITapGestureRecognizer в качестве обходного пути), но ни один из нихявляются полными или точными.
Буду признателен за любую помощь, оказанную для достижения моей цели, или за какой-нибудь другой совет, как туда добраться.
Спасибо