在Long tapped上获取UIScrollView中添加的UIButtons标签

时间:2014-05-09 10:16:07

标签: ios objective-c uiscrollview uigesturerecognizer

在我的应用程序中,我在uiscrollview中添加uibutton作为子视图。我想在长按时获得按钮的标签。我的代码是

UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(handleLongPress:)];
longPress.minimumPressDuration = 2.0;
longPress.delegate = self;
[gridScrollView addGestureRecognizer:longPress];

我想知道如何在此代码中获取特定的按钮标记

-(void)handleLongPress:(UILongPressGestureRecognizer *)gestureRecognizer {

}

2 个答案:

答案 0 :(得分:0)

您将获得子视图属性

中的所有按钮
for (UIButton *eachBtn  in [gridScrollView subviews]) {
    if ([eachBtn isKindOfClass:[UIButton class]]) {
         NSLog(@"Button Tag : %i",eachBtn.tag);
    }
} 

如果您想传递按钮的标签,请将相同的标签设置为手势

longPress.view.tag = btn.tag

之后在你的长按处理程序方法中取这个标记

  NSLog(@"Button Tag : %i",longPress.view.tag);

答案 1 :(得分:0)

如果你没有跟踪添加到滚动视图的所有按钮(例如通过将它们添加到数组中),只需枚举滚动视图的所有子视图,检查当前子视图是否为{{1}并获得UIButton

subview.tag

或者,如果您知道该标记,请使用for (UIView *subview in scrollView.subviews) { if ([subview isKindOfClass:[UIButton class]]) { // subview.tag … } }