2
我有一个tableview,每行有4个图像。我已经实施了一个分享选项,允许用户选择多张图片。如何添加叠加层或某种视觉效果以显示图像被选中?添加覆盖网格表查看
我想补充一些叠加显示的图像选择,但如何将这种不添加一组新的子视图的每个缩略图做些什么呢?一旦完成,新视图的选择将如何链接到它们后面的图像,以便它们可以添加到数组中?
还是有更简单的方法来做到这一点?
感谢
我有一个tableview,每行有4个图像。我已经实施了一个分享选项,允许用户选择多张图片。如何添加叠加层或某种视觉效果以显示图像被选中?添加覆盖网格表查看
我想补充一些叠加显示的图像选择,但如何将这种不添加一组新的子视图的每个缩略图做些什么呢?一旦完成,新视图的选择将如何链接到它们后面的图像,以便它们可以添加到数组中?
还是有更简单的方法来做到这一点?
感谢
取决于你如何实现这个网格视图,它可能是有意义的跟踪所有的选择,并在该级别取消。
至于覆盖,快速和肮脏的方式是继承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
感谢马克。我已经跟踪网格上的选择。我的问题是覆盖,然后你的技巧听起来不错。 UIImageView的子类和子类是什么以及如何重写所选内容? – jarryd
我已经更新了我的答案以显示基本的UIImageView子类。 –
@Mark Adams:谢谢你的帮助。我只是不确定你想如何附加或链接到tableview?我应该用什么方法初始化框架? – jarryd