。
オーバーレイに関しては、素早く汚い方法は、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
おかげマーク。私は既にグリッド自体の選択を追跡しています。私の問題はオーバーレイであり、あなたのトリックは良いと思う。どのようにUIImageViewのサブクラスを選択し、どのようにオーバーライドされますか? – jarryd
基本的なUIImageViewサブクラスを表示するために私の答えを更新しました。 –
@マークアダムス:これはあなたに大きな助けになりました。私はあなたがこれを付けたり、それをテーブルビューにリンクしたと思ったかどうか確信していませんか?私は何をinitWithFrameする必要がありますか? – jarryd