2011-11-25 2 views
1

IKImageBrowserView의 그룹 머리글 모양을 변경하려고합니다. IKImageBrowserGroupHeaderLayer와 함께 커스텀 CALayer를 제공 할 수있는 것을 보았습니다 만, 어떻게 사용하는지 (레이어의 크기를 얻는 방법, 그룹이 선택되었는지를 아는 방법, ....)IKImageBrowserView 그룹 모양 사용자 지정

포인터가 있습니까?

감사

답변

1

나는이 오늘에 이동이 있고 그것은 합리적으로 간단 나타났다. 그러나 IKImageGroupDisclosureStyle 그룹에서만 작동하는 것으로 나타났습니다.

이렇게하면 각 그룹의 상단에 멋진 핑크색 선이 나타납니다. 보기가 레이어를 표시 할 때 브라우저보기의 너비로 레이어의 크기가 조정되므로 boundswidth에 넣은 값은 결과에 아무런 영향을주지 않지만 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 그룹 중 하나가 선택한 항목을 포함하는지 여부에 따라 다른 계층 구성 (또는 기타)을 반환합니다.

+0

답장을 보내 주셔서 감사합니다. 한 가지를 제외하면 잘 작동합니다. 확장/축소 삼각형의 위치가 잘못되었습니다. 더 이상 그룹 내에 있지 않습니다. 같은 문제가 발생 했습니까? –