2

我使用icarousel创建了一个在coverflow中显示8个按钮的应用程序。我必须为每个按钮分配不同的操作。这是我的viewcontroller.m文件代码..

- (NSUInteger)numberOfItemsInCarousel:(iCarousel *)carousel
{
return NUMBER_OF_ITEMS;
}

- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index   reusingView:(UIView *)view
{

UIImage *buttonImage=[NSArray arrayWithObjects:[UIImage imageNamed:@"Cover_0.png"],
                      [UIImage imageNamed:@"Cover_1.png"],
                      [UIImage imageNamed:@"Cover_2.png"],
                      [UIImage imageNamed:@"Cover_3.png"],
                      [UIImage imageNamed:@"Cover_4.png"],
                      [UIImage imageNamed:@"Cover_5.png"],
                      [UIImage imageNamed:@"Cover_6.png"],
                      [UIImage imageNamed:@"Cover_7.png"],nil];

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0, 0, 200.0f, 200.0f);

[button setImage:(UIImage*)[buttonImage objectAtIndex:index] forState:UIControlStateNormal];    
[button addTarget:self action:@selector(buttonTapped:) forControlEvents:UIControlEventTouchUpInside];
return button;   
}

- (void)buttonTapped:(UIButton *)sender
{
}

在这里我被卡住了......现在我想为每个按钮分配不同的动作。但是如果我在 buttonTapped 下声明一个动作,它会被分配给所有按钮..有人可以帮忙吗?...

除了我之前的问题之外,我还在 xib 文件中的该按钮中添加了其他两个按钮和两个事件,并在我的 .m 文件中定义了方法...但是如果我在模拟器上运行它,它只会显示为图像并且无法与该按钮交互...任何想法请...

4

2 回答 2

1

只需根据按钮标签值调用 base 即可。

获取按钮标签值

- (void)buttonTapped:(UIButton *)sender
{

uibutton *btn=(uibutton *) sender;

nslog(@"button tag== %d",btn.tag);

}
于 2012-06-17T08:13:57.280 回答
1

您可以像这样询问轮播按钮按下了哪个按钮:

- (void)buttonTapped:(UIButton *)sender
{
    NSInteger index = [carousel indexOfItemViewOrSubview:sender];
    switch(index) {
        case 0:
            //do action number 1
            break;
        case 1:
            //do action number 2
            break;
        etc....
    }
}
于 2012-06-17T08:21:12.237 回答