如何检查是否在UIButton上添加了uiimage视图

时间:2012-09-18 05:59:17

标签: iphone uiscrollview

我已经从数组中的照片库中获取了所有图像,然后在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
    {


    }

}

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

3 个答案:

答案 0 :(得分:2)

在选择按钮上添加图像时,将其tag =常量(例如9999)+ sender.tag设置为。 现在再次点击按钮检查是否存在标记为9999 + sender.tag的子视图。如果是,请从superview

中删除该子视图

答案 1 :(得分: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;
        }
    }

答案 2 :(得分:0)

要检查UIImageView是否已添加到UIButton,请使用以下内容..

检查按钮是否有任何UIImage

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

用于检查按钮是否具有任何背景图像

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