отображение UiImageView при нажатии

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

Например:

Если есть шоколадка

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

Это код, который у меня есть

.h файл

#import <UIKit/UIKit.h>


@interface ChompViewController : UIViewController {

    int s;
    int turn;
    IBOutlet UIImageView *sq1;
}

//@property (nonatomic, retain) IBOutlet UIImageView *aq1;

- (IBAction) mainMenu:(id)sender;


@end

.m-файл:

#import "ChompViewController.h"
#import "MainMenuViewController.h"

@implementation ChompViewController


// Main Menu button in Start Game view.
- (IBAction) mainMenu:(id)sender {
    MainMenuViewController* mainM = [[MainMenuViewController
    alloc] initWithNibName:@"MainMenuViewController" bundle:nil];

    [self.navigationController pushViewController:mainM animated:YES];

}



// The Game Method.
- (void) startGame {
    s=20;

    while (s>0) {



        // Players' Turn
        if (turn = 1) {


            turn = 0;
        }



        // Computers' Turn
        else {


            turn = 1;
        }

    }
}

@end

Итак, я хочу реализовать кран и скрыть в двух операторах «если» под

- (void) StartGame

Я надеюсь, что вы можете мне помочь, мне очень нужна ваша помощь ..

Спасибо

РЕДАКТИРОВАТЬ: я нашел метод и внес некоторые изменения, и он работает, но он работает при нажатии на любое место на экране, и я хочу, чтобы он срабатывал, когда пользователь касается точного местоположения маленького UIImageView.

Кроме того, я не знаю, как реализовать этот метод внутри моего метода StartGame.

это код

        - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

            sq1.hidden = NO;
            [sq1 release];
        }

Я знаю, что много прошу, я нуб, и мне нужна помощь, чтобы улучшить свои знания в области разработки для iPhone.

===============

РЕДАКТИРОВАТЬ 2..

Я сделал что-то еще, но в коде что-то не так, и я не знаю, что это такое.

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {




    s=20;
    turn =1;
    while (s>0) {



        // Players' Turn
        if (turn = 1) {

            UITouch *touch = [touches anyObject];
            CGPoint touchLocation = [touch locationInView:self.view];

            if (CGRectContainsPoint(sq1.frame, touchLocation)){
                sq1.hidden = YES;
            }

            turn = 0;
        }




        // Computers' Turn
        else {


            //Computer Here

            turn = 1;
        }
    }   
}

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


person moalemadi    schedule 21.02.2011    source источник
comment
Цикл while (s>0) никогда не завершится, так как s всегда равен 20   -  person ohho    schedule 22.02.2011
comment
и if (turn = 1) не совпадает с if (turn == 1)   -  person ohho    schedule 22.02.2011
comment
и вам лучше задать новый вопрос для ОБНОВЛЕНИЯ 2. это не тот же вопрос, что и в заголовке, и его следует разделить.   -  person ohho    schedule 22.02.2011
comment
Большое спасибо, теперь это работает :) .. и извините за РЕДАКТИРОВАТЬ   -  person moalemadi    schedule 22.02.2011
comment
в чем разница между = и == ??   -  person moalemadi    schedule 22.02.2011


Ответы (2)


Проще всего разместить пользовательский UIButton без изображения и без текста заголовка (чтобы он был прозрачным) поверх скрытого местоположения UIImageView и подключить действие TouchUpInside кнопки к методу, который выполняет

myImageView.hidden = NO.
person Bogatyr    schedule 21.02.2011
comment
Не могли бы вы проверить РЕДАКТИРОВАТЬ 2 вопроса? - person moalemadi; 22.02.2011

Прямо сейчас я могу придумать два возможных способа сделать это (вероятно, их больше):

  1. Используйте метод touchesStarted: withEvent: и проверьте, было ли касание внутри наблюдаемой области. Если это так, отобразите/покажите UIImageView

  2. Забудьте об UIImageView и вместо этого используйте прозрачные UIButtons. Когда кнопка нажата, добавьте изображение в экземпляр, если UIButton был нажат.

person Robin    schedule 21.02.2011
comment
Не могли бы вы проверить РЕДАКТИРОВАТЬ 2 вопроса? - person moalemadi; 22.02.2011