0

我添加到滚动视图的按钮有一个奇怪的行为。

    for (UIView *subview in self.scrollView.subviews) {
        [subview removeFromSuperview];
    }
    //Create and place info Button(s)
    for (int i = 0; i < BigPictures.count; i++) {
        UIButton *infoButton = [[UIButton alloc] initWithFrame:CGRectMake(scrollView.frame.size.width*(i+1) - 29 - 5 - 10, scrollView.frame.size.height - 29 - 5, 29, 29)];
        [infoButton addTarget:self action:@selector(flip) forControlEvents:(UIControlEvents)UIControlEventTouchUpInside];
        //[infoButton setEnabled:YES];
        //[infoButton setUserInteractionEnabled:YES];

        [self.scrollView addSubview:[FrontViews objectAtIndex:i]];
        [infoButton setBackgroundImage:[UIImage imageNamed:@"btn_image-info.png"] forState:UIControlStateNormal];
        [scrollView addSubview:infoButton];

BigPictures 包含我想在滚动视图中显示的所有图像。现在到奇怪的事情。如果 BigPictures 包含 1 个图像,则调用动作(翻转)。只要 [BigPictures count] > 1,第一张图片上的按钮就不会执行操作,但所有其他按钮(第 2-n 页)都会执行。所以这怎么可能??

即使我改变for (int i = 0; i < BigPictures.count; i++)for (int i = 0; i < 1; i++),按钮也可以工作。

那么我错过了什么?已经尝试过类似的东西

scrollView.delaysContentTouches = NO;
scrollView.canCancelContentTouches = NO;

但后一个禁用滚动视图的滚动。

编辑:我尝试将其他按钮放在不同的位置,但它们都不能在第一页上工作(如果页面 > 1)。还尝试放置一个 GestureRecognizer。这有效,if ([touch.view isKindOfClass:[UIButton class]])但未检测到下方的按钮。在滚动视图的其他页面上一切正常。真的很奇怪。

4

1 回答 1

0

做了一个完整的重建,现在它可以工作了。真的很奇怪,因为我使用了完全相同的代码。

于 2013-01-28T14:07:55.140 回答