0

我已经从数组中的照片库中获取所有图像,然后在 UIButtons 上显示所有这些图像并将它们放入滚动视图以显示网格视图。现在,当用户单击按钮时,它应该看起来像他选择了该图像,为此我已经拍摄了一个刻度线图像并将其添加到 UIImageView 中,并在单击时在按钮上添加了该图像视图。但是现在当用户再次单击同一个按钮时,当用户已经选择了多个图像时,如何从按钮中删除该 UIImageview。这是我的代码

-(void)loadImagesOnScrollView
{
    scrollView.contentSize=CGSizeMake(0, 55*[assets count]);

    int x=0,y=0;
    for (int i=0; i<[assets count]; i++) {
        ALAsset *asset = [assets objectAtIndex:i];

        UIButton *btn=[UIButton buttonWithType:UIButtonTypeCustom];
        btn.frame=CGRectMake(x, y, 100, 100);
        btn.tag=i;
        [btn setImage:[UIImage imageWithCGImage:[asset thumbnail]] forState:UIControlStateNormal];
        [btn addTarget:self action:@selector(btnClkd:) forControlEvents:UIControlEventTouchUpInside];

        if(i==0)
        {

        }
        else if(i%2 ==0)
        {
            x=0;
            y=y+110;
        }
        else
        {
            x=x+110;
        }

        [scrollView addSubview:btn];

    }
}

-(void)btnClkd:(UIButton*)sender
{
    if (sender.selected) {
        sender.selected=FALSE;
     }
    else
    {
        sender.selected=TRUE;
    }



    if(sender.selected)
    {

    [sender addSubview:imgView];

    }
    else
    {


    }

}

除此之外,我还有一个问题,如何设置滚动视图的内容大小,以便可以使用任意数量的图像进行调整。

4

3 回答 3

2

当您在选择按钮上添加图像时,设置其标签 = 常量(比如 9999)+ sender.tag。现在再次单击按钮检查是否存在带有标签 9999+sender.tag 的子视图。如果是,请从超级视图中删除该子视图

于 2012-09-18T15:53:41.300 回答
1

在您的 .h 文件中创建一个 BOOL 变量,例如:

BOOL isButtonClicked; // in .h file

然后在你的 .m 文件中

-(IBAction)onButtonClick:(UIButton *)checkBoxButton
    {
        if (!isButtonClicked) {
            [checkBoxButton setImage:[UIImage imageNamed:@"tickMark.png"] forState:UIControlStateNormal];
            isButtonClicked=YES;
        }
        else
        {
            [checkBoxButton setImage:[UIImage imageNamed:@"NormalImage.png"] forState:UIControlStateNormal];
            isButtonClicked=NO;
        }
    }
于 2012-09-18T09:23:20.877 回答
0

要检查 UIImageView 是否添加到 UIButton 使用以下..

检查按钮是否有任何 UIImage

 if ( [button.currentImage isEqual:[NSNull null]]) {
        NSLog(@"image exist");
    }

或者

检查按钮是否有任何背景图片

 if ( [button.currentBackgroundImage isEqual:[NSNull null]]) {
        NSLog(@"background image exist");
    }
于 2012-09-18T06:48:55.730 回答