在iOS中添加UICollectionview底部的按钮

时间:2014-08-22 04:50:14

标签: ios objective-c uibutton uicollectionview

我遇到了问题:我想在UICollectionview底部的1个按钮允许用户选择所有照片。当按钮总是在集合视图的底部滚动时,该按钮是全选按钮。当我点击该按钮时,将检查集合视图中的所有照片。我尝试添加页脚,但这不是我想要的。我不知道如何添加该按钮。请给我一些建议。提前谢谢。

编辑:包含图片:

您可以在此处查看图片:1

收集视图底部的"全选"按钮。用户长按5秒后会出现该按钮。如果用户单击此按钮,将选择所有照片。我怎么能这样做?

3 个答案:

答案 0 :(得分:0)

听起来像你应该只在集合视图下面添加一个UIButton并使集合视图的框架更短。通过这种方式,您可以让按钮操作操作集合视图,并始终在底部

UIButton *button = [[UIButton alloc]initWithFrame:CGRectMake(0,200,320,50)];
[self.contentView addSubview:button];

答案 1 :(得分:0)

UIButton *button = [[UIButton alloc]initWithFrame:CGRectMake(0,200,320,50)];

[self.view addSubview:button];

如果你想把视图放在前面,你可以选择一些API。

bringSubviewToFront:

移动指定的子视图,使其显示在其兄弟姐妹的顶部。

sendSubviewToBack:

移动指定的子视图,使其显示在其兄弟之后。

insertSubview:atIndex:

在指定的索引处插入子视图。

insertSubview:aboveSubview:

在视图层次结构中的另一个视图上方插入视图。

更多细节,flow Apple doc

答案 2 :(得分:0)

如果您想要选择所有按钮始终位于底部,那么您应该将其添加到视图中,并确保在添加集合视图后添加按钮,它将始终位于底部。

您可以在集合视图上添加长按手势,如下所示:

- (void)viewDidLoad
{
    // attach long press gesture to collectionView
    UILongPressGestureRecognizer *lpgr
    = [[UILongPressGestureRecognizer alloc]
       initWithTarget:self action:@selector(handleLongPress:)];
    lpgr.minimumPressDuration = .5; //seconds
    lpgr.delaysTouchesBegan = YES;
    lpgr.delegate = self;
    [self.collectionView addGestureRecognizer:lpgr];
}

-(void)handleLongPress:(UILongPressGestureRecognizer *)gestureRecognizer
{
    if (gestureRecognizer.state != UIGestureRecognizerStateEnded) {
        return;
    }
    CGPoint p = [gestureRecognizer locationInView:self.collectionView];

    NSIndexPath *indexPath = [self.collectionView indexPathForItemAtPoint:p];
    if (indexPath == nil){
        NSLog(@"couldn't find index path");
    } else {
        UIButton *btnSelectAll = [UIButton buttonWithType:UIButtonTypeCustom];
        btnSelectAll.frame = CGRectMake(110,437,100,30);
        [[btnSelectAll titleLabel] setFont:[UIFont systemFontOfSize:18]];
        [btnSelectAll setImage:[UIImage imageNamed:@"selectImage"] forState:UIControlStateNormal];
        [btnSelectAll addTarget:self action:@selector(selectAllEvent:) forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview:btnSelectAll];
    }
}

-(IBAction)selectAllEvent:(id)sender{

    //Write code to select all images

}

并且完成后不要忘记从超级视图中删除该按钮。我认为这会有所帮助。