2011-02-19 5 views
2

각 행에 4 개의 이미지가있는 tableview가 있습니다. 사용자가 여러 이미지를 선택할 수있는 공유 옵션을 구현했습니다. 이미지가 선택되었음을 보여주기 위해 오버레이 또는 어떤 종류의 시각적 효과를 추가하려면 어떻게합니까?격자에 오버레이 추가 tableView

enter image description here

나는 이미지가 선택되어 있는지 표시하는 몇 가지 오버레이를 추가하고 싶지만, 어떻게 각 축소판에 대한 서브 뷰의 새로운 세트를 추가하지 않고 할 것인가? 그리고 이것이 끝나면 새로운 뷰의 선택이 배열 뒤에 추가 될 수 있도록 어떻게 뒤에있는 이미지와 연결될 것입니까?

또는 더 쉬운 방법이 있습니까? 이 그리드 뷰를 구현하는 방법에 따라

덕분에

답변

2

, 그것은 선택의 모든 그 수준에서 해제 추적하는 의미가 있습니다.

오버레이의 경우 신속하고 더러운 방법은 UIImageView를 서브 클래스 화하고 selected이라는 BOOL 속성을 추가하는 것입니다. 그런 다음 설정자를 selected으로 대체하고 오버레이보기를 표시하거나 숨길 수 있습니다.

내 하위 클래스를 설정하는 방법은 다음과 같습니다. 먼저 인터페이스 :

@interface SelectableImageView : UIImageView 

@property (nonatomic, assign, getter = isSelected) BOOL selected; 

@end 

및 구현 ...

@interface SelectableImageView() 

@property (nonatomic, retain) UIView *overlayView; 

@end 



@implementation SelectableImageView 

@synthesize selected; 
@synthesize overlayView; 

- (id)initWithFrame:(CGRect)frame 
{  
    if (self = [super initWithFrame:frame]) 
    { 
     overlayView = [[UIView alloc] initWithFrame:frame]; 
     overlayView.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.75]; 
     overlayView.hidden = YES; 
     [self addSubview:overlayView]; 
    } 

    return self; 
} 

- (void)setSelected:(BOOL)flag 
{ 
    selected = flag; 
    self.overlayView.hidden = !flag; 
} 

- (void)dealloc 
{ 
    [overlayView release], self.overlayView = nil; 
    [super dealloc]; 
} 

@end 
+0

감사 마크. 이미 그리드 자체의 선택을 추적합니다. 내 문제는 다음 오버레이 및 귀하의 트릭 좋은 소리. UIImageView의 하위 클래스와 하위 클래스는 무엇이며 어떻게 재정의됩니까? – jarryd

+0

기본 UIImageView 하위 클래스를 표시하도록 내 대답을 업데이트했습니다. –

+0

@ Mark Adams : 감사합니다. 임은 당신이 이것을 첨부하거나 테이블 뷰에 연결하는 방법에 대해 확신하지 못했습니까? 무엇을 initWithFrame으로해야합니까? – jarryd

관련 문제