UILabelを大量に作る
UIImageを大量に作るにはここを改良してファイル名生成のところをfor文で回してあげれば良いのですが、UILabelはちょっとめんどうです。
UILabelを配列の数だけ生成し、位置と角度をランダムにしてみました。
※Labelを破棄する場合の処理を追加しました。
以下の場合、通常だと[_label removeFromSuperview]; で破棄(消す)ことができますが、生成した直後のものしか消してくれません(以下だと2つ残ってしまう)。
すべて消す場合は、背景が透明のViewを新たに作ってひも付けし、LabelのみそのViewの上にaddSubviewして、そのViewごと破棄すればOKです。
コードは以下。IBやStoryboardを使わずコードのみで生成するという点に注意です。
・ViewController.h Labelをまるごと破棄(消す)場合はこの処理が必要
@property (weak, nonatomic) IBOutlet UIView *labelview; - (IBAction)clearText:(id)sender;
・ViewController.m
- (void)viewDidLoad { [super viewDidLoad]; //表示する文字を配列にまとめる NSArray *myArray = [NSArray arrayWithObjects:@"まどか", @"ほむら", @"さやか", nil]; for(NSString *text in myArray){ //10-170までランダムの数値を出す int labelx = 10 + arc4random() % 160; //50-250までランダムの数値を出す int labely = 50 + arc4random() % 200; //回転角、0-360までランダムの数値を出す int labeltrans = 0 + arc4random() % 360; //ラベル生成 UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(labelx, labely, 100,20)]; //背景色設定 label.backgroundColor = [UIColor yellowColor]; //回転角設定 label.transform = CGAffineTransformMakeRotation(labeltrans); [label setText:text]; [self.view addSubview:label]; //ラベルを消す必要がある場合は、上を以下のように書き換える [_labelview addSubview:label]; } } //ラベルを消す処理 - (IBAction)clearText:(id)sender { [_labelview removeFromSuperview]; }