点击时显示UiImageView

时间:2011-02-21 21:15:35

标签: iphone sdk uiimageview hidden

我想添加一个默认情况下应隐藏的图像视图,以及用户点击时 它的位置,图像应该出现。

例如:

如果有巧克力棒

我在左下方的顶部添加了一个小的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

所以我想实现点击并隐藏在

下的两个'if'语句中
- (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;
        }
    }   
}

现在,当我触摸imageView时,模拟器冻结并退出应用程序。

2 个答案:

答案 0 :(得分:1)

最简单的方法是在隐藏的UIImageView位置顶部放置一个没有图像且没有标题文本的自定义UIButton(因此它是透明的),并将按钮的TouchUpInside操作连接到执行的方法

myImageView.hidden = NO.

答案 1 :(得分:1)

现在我可以想到两种可能的方法(可能还有更多):

  1. 使用touchesStarted:withEvent:方法并检查触摸是否在观察区域内。如果是,则显示/取消隐藏UIImageView

  2. 忘记UIImageView并改用透明UIButton。按下按钮时,如果按下了UIButton,则将图像添加到实例中。