Iphone 如何检查uiimage视图是否添加到UIButton上

Iphone 如何检查uiimage视图是否添加到UIButton上,iphone,uiscrollview,Iphone,Uiscrollview,我已从照片库中以数组形式拍摄了所有图像,然后将所有这些图像显示在UIButtons上,并将其置于滚动视图中以显示网格视图。现在,当用户单击按钮时,它应该看起来像他选择的图像,为此,我拍摄了一张勾号图像,并将其添加到UIImageView中,并在单击按钮时添加了该图像视图。但现在,当用户再次单击同一按钮时,当用户已经选择了多个图像时,如何从按钮中删除UIImageview。 这是我的密码 -(void)loadImagesOnScrollView { scrollView.contentS

我已从照片库中以数组形式拍摄了所有图像,然后将所有这些图像显示在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
    {


    }

}
-(void)loadImagesOnScrollView
{
contentSize=CGSizeMake(0,55*[assets count]);
int x=0,y=0;

对于(int i=0;i要检查UIImageView是否添加到UIButton,请使用以下命令

用于检查按钮是否有任何UIImage

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

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

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

要检查UIImageView是否已添加到UIButton,请使用以下命令

用于检查按钮是否有任何UIImage

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

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

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

在.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;
        }
    }

在.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;
        }
    }

在选择按钮上添加图像时,将其标记设置为常量(比如9999)+sender.tag。
现在再次单击按钮,检查标记为9999+sender.tag的子视图是否存在。如果存在,请从superview中删除该子视图。当您在所选按钮上添加图像时,请将其标记设置为常量(例如9999)+sender.tag。
现在再次单击按钮,检查标记为9999+sender.tag的子视图是否存在。如果存在,则从superview中删除该子视图

if(!sender.selected){[imgView removeFromSuperview];}为什么要使用您的按钮标记?您可以通过以下行设置滚动视图大小:scrollView.contentSize=cSizeMake(yourWidth,yourHeight);if(!sender.selected){[imgView removeFromSuperview];}为什么要使用您的按钮标记?您可以通过以下行设置您的滚动视图大小:scrollView.contentSize=CGSizeMake(yourWidth,yourHeight);不工作,即使检测到uiimage视图已添加到按钮上,但如果[sender addSubview:imgView]已将其添加到按钮上时已将其释放,如何将其删除;为什么不直接设置button.Images因为我需要在原始图像上打勾,这样它看起来就像是被选中的一样不工作,即使检测到uiimage视图已经添加到按钮上,那么当我在按钮上添加它的同时释放它时,我如何删除它呢;为什么不直接设置按钮呢。图像因为我需要在原始图像上打勾,这样它看起来就像是被选中的一样。正常图像将始终在按钮上,现在当用户单击它时,一个勾号将出现在它上面,向用户显示这是被选中的。这就是为什么我拍摄了一张背景为空白、背景为蓝色的勾号图像将其作为其clickok cool上的子视图添加到按钮上..当您添加UIImageView(勾号)时,给它一个标记,特别给它一个不同的值,例如:9999,这样它就不会干扰您的按钮标记..然后在u r buttonClick方法中..用于(UIView*v in button.subview){if(v.tag==9999){NSLog(@“找到图像”);}感谢您的帮助,但它也不会工作,因为我的要求是,我现在有多个按钮,每个按钮上有不同的图像。当用户单击一个按钮时,我将创建一个uiimage视图,并将其添加到单击的按钮上。下次再次单击该按钮时,应将添加到该按钮上的图像视图从b中删除现在的挑战是,按钮将根据照片库中可用图像的数量动态创建,因此不能将uiimageviews作为全局变量,因为我事先不知道需要多少。正常图像将始终在按钮上,现在用户单击它时,将出现勾号这就是为什么我拍摄了一张背景为空的勾号图像,并将其添加到按钮上,作为其clickok cool上的子视图。当您添加UIImageView(勾号)时给它一个标记,特别是给它一个不同的值,例如:9999,这样它就不会干扰你的按钮标记..然后在u r buttonClick方法中..(UIView*v in button.subview){if(v.tag==9999){NSLog(@“image found”);}感谢您的帮助,但它也不会工作,因为我的要求是,我现在有多个按钮,每个按钮上有不同的图像。当用户单击一个按钮时,我将创建一个uiimage视图,并将其添加到单击的按钮上。下次再次单击该按钮时,应将添加到该按钮上的图像视图从b中删除现在的挑战是,按钮将根据照片库中可用图像的数量动态创建,因此不能将UIImageView作为全局变量,因为我事先不知道需要多少。。。。。。。