2011-02-19 51 views
2

我有一个tableview,每行有4个图像。我已经实施了一个分享选项,允许用户选择多张图片。如何添加叠加层或某种视觉效果以显示图像被选中?添加覆盖网格表查看

enter image description here

我想补充一些叠加显示的图像选择,但如何将这种不添加一组新的子视图的每个缩略图做些什么呢?一旦完成,新视图的选择将如何链接到它们后面的图像,以便它们可以添加到数组中?

还是有更简单的方法来做到这一点?

感谢

回答

2

取决于你如何实现这个网格视图,它可能是有意义的跟踪所有的选择,并在该级别取消。

至于覆盖,快速和肮脏的方式是继承UIImageView,添加一个名为selected BOOL属性。然后你可以覆盖selected的setter并处理显示或隐藏覆盖视图。

下面是我将如何设置我的子类。首先,接口:

@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:谢谢你的帮助。我只是不确定你想如何附加或链接到tableview?我应该用什么方法初始化框架? – jarryd