Удалить подпредставление UIButton - PullRequest
0 голосов
/ 04 ноября 2011

Я запускаю один и тот же кусок кода снова и снова, когда пользователь нажимает кнопку.Если пользователь нажимает кнопку, поверх кнопки появляется изображение, и если они нажимают ее снова, изображение удаляется из подпредставления кнопок.

вот мой код:

 UIImageView *overlay = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"OverlayImage.png"]];

    NSString *senderstag = [NSString stringWithFormat:@"%i", buttonFromSender.tag];
    if([[dictonaryOfImagesToDelete allKeys] containsObject:senderstag]){
        [[buttonFromSender subviews]makeObjectsPerformSelector:@selector(removeFromSuperview)]; 
    }
    else{
    [buttonFromSender addSubview:overlay];
    }
    NSString *imageName = [[NSString alloc]init];
    imageName = [arrayWithImageNames objectAtIndex:buttonFromSender.tag];

    [imagesToDelete addObject:imageName];

    [dictonaryOfImagesToDelete setObject:imagesToDelete forKey:[NSString stringWithFormat:@"%i", buttonFromSender.tag]];

Я используюсловарь, чтобы отслеживать, какие кнопки были нажаты.вместо просмотра изображения поверх удаляемой кнопки удаляется вся кнопка.Как я могу получить это просто, чтобы удалить изображение, а не кнопку?

Спасибо: D

Ответы [ 2 ]

0 голосов
/ 04 ноября 2011

В итоге я сделал UIImageview оверлея, UIButton.Это позволило установить действия для этого.Вот код, который используется:

        UIImage *image = [UIImage imageNamed:@"OverlayImage.png"];
    UIButton *overlay = [[UIButton alloc]init];
    overlay.frame = CGRectMake(0, 0, 100, 150);
    [overlay setImage:image forState:UIControlStateNormal];
    [overlay addTarget:self action:@selector(removeSelectedImage:) forControlEvents:UIControlEventTouchUpInside];
    overlay.tag = buttonFromSender.tag;


    [buttonFromSender addSubview:overlay];

    NSString *imageName = [[NSString alloc]init];
    imageName = [arrayWithImageNames objectAtIndex:buttonFromSender.tag];

    [imagesToDelete addObject:imageName];

    [dictonaryOfImagesToDelete setObject:imageName forKey:[NSString stringWithFormat:@"%i", buttonFromSender.tag]];

это настроило новую UIButton

, чтобы потом избавиться от UIButton, я сделал это:

0 голосов
/ 04 ноября 2011

Если вы хотите отобразить другое изображение для состояния кнопки, вы можете напрямую инициализировать кнопку, чтобы загрузить изображение в этом состоянии.скажем, например, Включено / Отключено или Выбрано / Отменено (обычное)

UIButton* myButton = [UIButton buttonWithType:UIButtonTypeCustom];    
[myButton setImage:[UIImage imageNamed:@"My Image"] forState:UIControlStateNormal];
[myButton setImage:[UIImage imageNamed:@"My Other Image"] forState:UIControlStateSelected];
[myButton setBackgroundImage:[UIImage imageNamed:@"BG Img"] forState:UIControlStateNormal];

Ссылки:

Фоновое изображение: http://developer.apple.com/library/IOS/documentation/UIKit/Reference/UIButton_Class/UIButton/UIButton.html#//apple_ref/occ/instm/UIButton/backgroundImageForState:

Изображение кнопки: http://developer.apple.com/library/IOS/documentation/UIKit/Reference/UIButton_Class/UIButton/UIButton.html#//apple_ref/occ/instm/UIButton/setImage:forState:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...