2

我正在学习 Xcode,我想知道如何让按钮刷新我的代码或其他内容的一部分。我将图片放在屏幕上的随机位置,但我希望能够按下按钮将其重新定位到另一个随机位置,任何输入将不胜感激。谢谢。这是我的代码。视图控制器.m

- (void)viewDidLoad
{
int xValue = arc4random() % 320;
int yValue = arc4random() % 480;


UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(xValue, yValue, 70, 30)];
NSString *imgFilepath = [[NSBundle mainBundle] pathForResource:@"clubs-2-150" ofType:@"jpg"];
UIImage *img = [[UIImage alloc] initWithContentsOfFile:imgFilepath];
[imgView setImage:img];
[self.view addSubview:imgView];


[super viewDidLoad];   
}
4

1 回答 1

2

就您的代码现在而言,变量不可能具有范围,这意味着它们仅存在于某些函数或类中。您的变量imgView仅存在于viewDidLoad. 为了能够在其他地方访问它,您需要将其声明为实例变量。

在你的 .h 文件中:

@interface yourClassName : UIViewController {
   UIImage *imageIWantToChange;
} 

这将允许您在所有 yourClassName 函数中访问 imageIWantToChange。

现在,在你的 .m

- (void)viewDidLoad
{

   [super viewDidLoad];   

   int xValue = arc4random() % 320;
   int yValue = arc4random() % 480;

   //Notice that we do not have UIImage before imageIWantToChange
   imageIWantToChange = [[UIImageView alloc] initWithFrame:CGRectMake(xValue, yValue, 70, 30)];
   UIImage *img = [UIImage imageNamed:@"clubs-2-150.jpg"];
   [imageIWantToChange setImage:img];
   [self.view addSubview:imgView];

}

然后在您的 IBAction 或按钮选择器中:

-(IBAction) buttonWasPressed:(id) sender {
   CGRect frame = imageIWantToChange.frame;

   frame.origin.x = arc4random() % 320;
   frame.origin.y = arc4random() % 480;

   imageIWantToChange.frame = frame;
}
于 2013-04-06T01:05:02.583 回答