iOS создает UILabels динамически - PullRequest
15 голосов
/ 09 июля 2011

Иногда я хочу, чтобы мое представление содержало 5 UILabel с, иногда 3, а иногда n .

Количество UILabels зависит от данных, которые выбираются с веб-сайта.

Ответы [ 6 ]

34 голосов
/ 09 июля 2011

Вы должны будете сделать их в коде, а не в конструкторе интерфейсов

 for (int i = 0; i < n; i++)
 {
    UILabel *label =  [[UILabel alloc] initWithFrame: CGRectMake(/* where you want it*/)];
    label.text = @"text"; //etc...
    [self.view addSubview:label];
    [label release];
 }
9 голосов
/ 09 июля 2011

Общий ответ на общий вопрос:

while (labelsToDisplay) 
{
    UILabel *label = [[UILabel alloc] initWithFrame:aFrame];
    [label setText:@"someText"];
    [aViewContainer addSubview:label];
    [label release];
}
4 голосов
/ 17 февраля 2016
   NSArray *dataArray;
   float xCoordinate=10.0,yCoordinate=10.0,width=100,height=40; 
   float ver_space=20.0;
   for (int i = 0; i <dataArray.count; i++)
   {
       UILabel *label =  [[UILabel alloc] initWithFrame: CGRectMake(xCoordinate,yCoordinate,width,height)];
       label.text = [dataArray objectAtIndex:i];
       [self.view addSubview:label];

       yCoordinate=yCoordinate+height+ver_space;
   }
0 голосов
/ 30 марта 2015
UILabel *lblTitle=[[UILabel alloc]init];
[lblTitle setFrame:CGRectMake(0, 0, 100, 100)];
[lblTitle setText:@"MAK"];
[lblTitle setBackgroundColor:[UIColor blueColor]];
[self.view addSubview:lblTitle];

- Здесь UILable будет создаваться динамически. -но свойство будет установлено по-другому.

0 голосов
/ 31 декабря 2014
 UILabel *lbl=[[UILabel alloc]initWithFrame:CGRectMake(125, 12,170,20)];
            lbl.text=@"IOS";
            lbl.textAlignment = NSTextAlignmentCenter;
            lbl.textColor = [UIColor whiteColor];
            lbl.font = [UIFont fontWithName:@"AlNile" size:10.0];
            lbl.backgroundColor=[[UIColor redColor]colorWithAlphaComponent:0.5f];
            lbl.layer.borderColor=[UIColor blackColor].CGColor;
            lbl.layer.borderWidth=1.0f;
            lbl.layer.cornerRadius = 6.0f;
            [self.view addSubview:lbl];
0 голосов
/ 13 июля 2011

Создайте TextView для отображения текста на этикетках и NSArray для хранения данных.

Для получения дополнительной информации:

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/NSArray.html

http://developer.apple.com/library/ios/documentation/uikit/reference/UITextView_Class/Reference/UITextView.html

...