Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone UIScrollview查看第二页按钮未侦听触摸_Iphone_Objective C_Ios_Uiscrollview_Uibutton - Fatal编程技术网

Iphone UIScrollview查看第二页按钮未侦听触摸

Iphone UIScrollview查看第二页按钮未侦听触摸,iphone,objective-c,ios,uiscrollview,uibutton,Iphone,Objective C,Ios,Uiscrollview,Uibutton,我有很多图像按钮滚动视图,对于按钮1-8,按钮行为没有问题。它可以是可点击的日志 问题是第二页上的按钮看起来好像没有在选择器按钮9-10上侦听。页面控制可能有问题吗?还是我错过了什么 // button paging myImages = [NSArray arrayWithObjects: [UIImage imageNamed:@"img_1.png"], [UIImage imageNamed:@"

我有很多图像按钮滚动视图,对于按钮1-8,按钮行为没有问题。它可以是可点击的日志

问题是第二页上的按钮看起来好像没有在选择器按钮9-10上侦听。页面控制可能有问题吗?还是我错过了什么

    // button paging
myImages = [NSArray arrayWithObjects:
                     [UIImage imageNamed:@"img_1.png"],
                     [UIImage imageNamed:@"img_2png"],
                     [UIImage imageNamed:@"img_3.png"],
                     [UIImage imageNamed:@"img_4.png"],
                     [UIImage imageNamed:@"img_5.png"],
                     [UIImage imageNamed:@"img_6.png"],
                     [UIImage imageNamed:@"img_7.png"],
                     [UIImage imageNamed:@"img_8.png"],
                     [UIImage imageNamed:@"img_9.png"],
                     [UIImage imageNamed:@"img_10.png"],
                     nil
            ];

// prepare counter
int posX, posY = 5, counter = 0, pages = 0;
BOOL reset = NO;

// uiviewscroller
CGRect scrollFrame;
scrollFrame.origin.x = self.myScrollView.frame.size.width * pages;
scrollFrame.origin.y = 0;
scrollFrame.size = self.myScrollView.frame.size;

UIView *subView = [[UIView alloc] initWithFrame:scrollFrame];
subView.backgroundColor = [UIColor colorWithRed:232.0f/255.0f green:233.0f/255.0f blue:235.0f/255.0f alpha: 1];

// loop over images
for (int i = 0; i < myImages.count; i++)
{
    counter++;

    // reposition X
    if (counter == 1 || counter == 5)
    {
        posX = 4;

        // more than 1 page
        if (pages > 0)
            posX = 320 * pages;
    }
    else
    {
        posX += 80;
    }

    // reposition Y
    posY = (counter <= 4) ? 5 : 85;

    if (reset == YES)
    {
        // reflag
        reset = NO;

        // redefined size
        scrollFrame.origin.x = self.myScrollView.frame.size.width * pages;            
    }

    // create image view for button
    UIImage *myIcon = [myImages objectAtIndex:i];
    UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom];

    // manipulate button behavior
    myButton.frame = CGRectMake(posX, posY, 80, 80);
    [myButton setTitle:[NSString stringWithFormat:@"%d", i] forState:UIControlStateNormal];
    [myButton setImage:myIcon forState:UIControlStateNormal];
    [myButton addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside];

    // add image to subview
    [subView addSubview:myButton];

    if (counter == 8)
    {
        // reset position
        posX = 4;
        posY = 5;

        // populate counter
        counter = 0;
        pages++;

        // reset section
        reset = YES;

        // add subview to view
        [self.myScrollView addSubview:subView];
    }

    // add balance subview to scroller
    if (counter > 0 && i == myImages.count-1)
    {
        // add subview to view
        [self.myScrollView addSubview:subView];
        pages++;
    }
}

scrollFrame.origin.x = self.myScrollView.frame.size.width * pages;
self.myScrollView.contentSize = CGSizeMake(self.myScrollView.frame.size.width * pages, self.myScrollView.frame.size.height);
self.myPaging.numberOfPages = pages;

您正在名为子视图的视图上添加按钮。最后两个按钮被添加到此视图的边界之外,因为视图的帧等于scrollview的帧UIView*子视图=[[UIView alloc]initWithFrame:scrollFrame]

添加按钮后更改其框架-

在下面要更改滚动视图内容大小的末尾添加一行

[subView setFrame:CGRectMake(subView.frame.origin.x, subView.frame.origin.y, _scrollView.frame.size.width * pages, _scrollView.frame.size.height)];

谢谢,这很有效。所以我也尝试删除以下代码。scrollFrame.origin.x=self.myScrollView.frame.size.width*页面;