2011-02-19 14 views
2

各行に4つの画像があるテーブルビューがあります。私は、ユーザーが複数の画像を選択できる共有オプションを実装しました。画像が選択されていることを示すために、どのようにオーバーレイまたは何らかの視覚効果を追加できますか?グリッドにオーバーレイを追加する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

@マークアダムス:これはあなたに大きな助けになりました。私はあなたがこれを付けたり、それをテーブルビューにリンクしたと思ったかどうか確信していませんか?私は何をinitWithFrameする必要がありますか? – jarryd

関連する問題