показывая UiImageView при нажатии - PullRequest
0 голосов
/ 22 февраля 2011

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

Например:

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

и я добавил небольшой 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

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

Спасибо

РЕДАКТИРОВАТЬ: IЯ нашел метод и внес некоторые изменения, и он работает, но он работает, когда вы касаетесь любого места на экране, и я хочу, чтобы он срабатывал, когда пользователь нажимал точное местоположение небольшого 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;
        }
    }   
}

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

Ответы [ 2 ]

1 голос
/ 22 февраля 2011

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

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

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

1 голос
/ 22 февраля 2011

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

myImageView.hidden = NO.
...