Какао Touch - прикосновения в UIImageView - PullRequest
1 голос
/ 24 июля 2010

Как мне сделать так, чтобы изображение исчезало при прикосновении.

Вот мой код для создания изображения. Он отображается случайным образом на экране, поэтому после прикосновения к нему он исчезает и на новом месте появляется новое изображение.

-(void)drawStarsAndDetectTouches{ //uses random numbers to display a star on screen
    //create random position
    int xCoordinate = arc4random() % 267;
    int yCoordinate = arc4random() % 420;

    //make sure it doesnt draw onto titiles
    if (yCoordinate <= 40) {
        yCoordinate = arc4random() % 420;
    }

    UIImageView *starImgView = [[UIImageView alloc] initWithFrame:CGRectMake(xCoordinate, yCoordinate, 58, 40)]; //create ImageView 
    starImgView.image = [UIImage imageNamed:@"star.png"];

    [self.view addSubview: starImgView]; 

    [starImgView release];
}

1 Ответ

1 голос
/ 24 июля 2010

От всей души я могу думать о двух способах, которыми вы можете достичь этого.

Либо работайте с UIButton вместо UIImageView. Установите тип кнопки «пользовательский» в Интерфейсном Разработчике и выберите изображение в качестве фонового изображения кнопки. Назначьте IBAction кнопке и сделайте ее невидимой для ваших действий.

Если - по какой-либо причине - вам нужно придерживаться UIImageView, создайте подкласс, который переопределяет -touchesBegan:inView:. Кроме того, убедитесь, что для свойства userInteractionEnabled представления изображения установлено значение YES, чтобы ваш селектор -touchesBegan:inView: вызывался всякий раз, когда пользователь касается представления. Значение по умолчанию для этого свойства для UIImageView равно NO, поэтому последний шаг важен!

Обновление Вот пример кода, который поможет вам начать работу с кнопочным подходом на случай, если вам понадобится сделать это программно:

UIButton* btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setBackgroundImage:img forState:UIControlStateNormal];
[btn addTarget:self action:@selector(buttonTouched:) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:btn];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...