xcode 画像をランダムに並べ順番に押す
初めてですが質問よろしくお願いします。
iphone開発初心者です。
数字の画像をランダムに5×5に並べ、1から25まで順番に押していく、
というアプリを制作中なのですが行き詰まっています。
現在下記コードのようになっています。
画像を表示まではできたのですが、下記3つ、できればソースコードをお聞きしたいです。
(1)画像25個をランダムに表示する記述がわかりません
(今はとりあえずで同じ画像を1つ入れてます。(img1~img25のimg1を代入中))
(2)順番に押していく処理
(3)画像を押された時に音を出したい
- (IBAction)image:(id)sender {
AudioServicesPlaySystemSound(sound_1);
}
の部分をうまく入れこめばいいのかと思っていますが、その入れこみ方もわかりません。
AudioToolboxは追加済みです。
どなたかご教授よろしくお願いします。
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
NSString *path = [[NSBundle mainBundle] pathForResource:@"btn_1" ofType:@"mp3"];
NSURL *url = [NSURL fileURLWithPath:path];
AudioServicesCreateSystemSoundID((CFURLRef)CFBridgingRetain(url), &sound_1);
int yo = 5;
for(int i = 0;i<yo; i++){
UIImageView *imageView = [UIImageView new];
imageView.frame = CGRectMake(15+60*i, 100, 60, 60);
imageView.image = [UIImage imageNamed:@"img1.png"];
[self.view addSubview:imageView];
}
int f = 25;
for(int i = 0;i<f; i++){
UIImageView *imageView = [UIImageView new];
imageView.frame = CGRectMake(15+60*(i%5), 100+60*(i/5), 60, 60);
imageView.image = [UIImage imageNamed:@"img1.png"];
[self.view addSubview:imageView];
}
int rand = arc4random()%f;
for(int i = 0; i<f; i++){
if(i == rand){
UIButton*button = [UIButton new];
button.frame = CGRectMake(15+60*(i%5), 100+60*(i/5), 60, 60);
[button setImage:[UIImage imageNamed:@"img1.png"] forState:UIControlStateNormal];
[button addTarget:self action:@selector(buttonTapped) forControlEvents:UIControlEventTouchDown];
[self.view addSubview:button];
}else{
UIImageView *imageView = [UIImageView new];
imageView.frame = CGRectMake(15+60*(i%5), 100+60*(i/5), 60, 60);
imageView.image = [UIImage imageNamed:@"img1.png"];
[self.view addSubview:imageView];
}
}
}
- (IBAction)image:(id)sender {
AudioServicesPlaySystemSound(sound_1);
}
-(void)buttonTapped{
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
お礼
解決しました。 ありがとうございました。 結果的には、ご指摘いただいたcontentsizeで検索していたところ、以下の内容を記述することで動くようになりました。 self.scroll1.contentInset = UIEdgeInsetsMake(999, 999, 999, 999); とても参考になりました。