UICollectionViewCell选择行为

时间:2013-04-25 07:45:10

标签: iphone ios objective-c uicollectionviewcell

我的应用中有一个照片库。我可以在哪里选择多张照片并删除它们。一切都很顺利。

我只需要实现Apple的默认选择行为,就像我们在相机胶卷中看到的那样。

enter image description here

现在我的选择就像这样

enter image description here

我已经实现了didSelectItemAtIndexPath方法,如下所示 -

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"Delegate cell %@ : SELECTED", [self formatIndexPath:indexPath]);
    MyCustomCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath];
    cell.label.backgroundColor=[UIColor greenColor];
}

 - (NSString *)formatIndexPath:(NSIndexPath *)indexPath 
{
    return [NSString stringWithFormat:@"%ld", (long)indexPath.row+1];
}

在MyCustomCell.m中,我将标签框架设置为矩形,如图(绿色)所示。

方法setSelected如下所示:

- (void)setSelected:(BOOL)selected
{
    UIView *blurView=[[UIView alloc] initWithFrame:CGRectMake(0, 0, 60, 70)];
    blurView.backgroundColor=[UIColor whiteColor];
    blurView.alpha=0.5;
    blurView.opaque=YES;
    if (selected) {
        self.label.backgroundColor = [UIColor greenColor];
        [self.imageThumb addSubview:blurView];
    }
}

那么,是否有可能拥有苹果的默认选择行为?

任何帮助将不胜感激。提前谢谢。

2 个答案:

答案 0 :(得分:2)

在您的单元格的setSelected:中,如果选择YES,则添加一个字母为UIView的白色0.5(或将该值调整为看起来不错的不透明度给你);如果NO,请删除该重叠视图。然后,当您添加复选标记图像时,请务必使用[self.contentView bringSubviewToFront:checkmarkImageView]将其叠加在叠加层视图的顶部。

答案 1 :(得分:1)

只需在UIImageView上添加一个具有所需灰色的UIView即可。 将alpha设置为f.e. 0.5和隐藏=是;

_blurView.hidden = YES;
_blurView.alpha = 0.5;

然后设置hidden = NO如果选中。

_blurView.hidden = NO;

您可以使用InterfaceBuilder添加UIView。

为了让它看起来更好,你可以使用带有漂亮纹理图像的UIImageView。