2013-04-05 50 views
2

我在學習Xcode,我想知道如何使按鈕刷新我的代碼或其他東西的一部分。我將圖片放置在屏幕上的隨機位置,但我希望能夠按下按鈕將其重新定位到另一個隨機位置,任何輸入將不勝感激。謝謝。這是我的代碼。 ViewController.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]; 
} 

回答

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; 
} 
相關問題