Проходить через ярлыки iPhone SDK - PullRequest
0 голосов
/ 10 августа 2009

Хорошо, у меня 8 ярлыков, и я хочу их просмотреть, но мне не везет.

Это то, что я пробовал.

for (int i; i = 0; i < 10; i++)
{
  double va = [varible1.text doubleValue] + i;
  int j = 0 + I 

  label(j).text= [[NSString alloc]initWithFormat:@"%2.1f", va];
}

Это ошибка. Мои ярлыки названы так: label0, label1, label2

Любая помощь будет оценена.

Ответы [ 4 ]

3 голосов
/ 10 августа 2009

label(j) НЕ эквивалентно label0, label1 и т. Д.

Вы должны создать NSArray меток, затем вы можете получить к ним доступ с помощью [arrayOfLabels objectAtIndex:j]. Если вы не уверены, что это значит, прочитайте документацию по NSArray ...

2 голосов
/ 10 августа 2009

Возможно, вам следует добавить все ваши метки в массив C, возможно, в -viewDidLoad

UILabel* labels[] = { label0, label1, label2, ... };

(не совсем уверен в синтаксисе) а затем получить к ним доступ как

labels[i].text = ...

Между прочим, я думаю, что вы теряете память здесь:

labels[i].text = [[NSString alloc]initWithFormat:@"%2.1f", va];

initWithFormat: вернет строку со счетчиком сохранения 1. label [i] .text снова сохранит это значение. Вы должны освободить строку после установки текста метки. Я, вероятно, просто выпустить его здесь:

labels[i].text = [[[NSString alloc]initWithFormat:@"%2.1f", va] autorelease];

или используйте stringWithFormat (которая возвращает автоматически освобожденную строку):

labels[i].text = [NSString stringWithFormat:@"%2.1f", va];
1 голос
/ 15 июля 2013
 for (UILabel *lbl in self.view.subviews) 
    {     
        [lbl setFont:[UIFont fontWithName:@"AppleGothic" size:22]];
    } 

это изменит все метки в вашем ViewController, просто присвоив метки меткам.

0 голосов
/ 10 августа 2009

Если вы не можете или не хотите помещать свои метки в массив, вы можете перебирать UIViews, используя поле тега в качестве индекса. Вы сохраняете в них индексные номера (либо через IB, либо программно), а затем получаете каждую метку с помощью тега: (UIView *) viewWithTag: (NSInteger).

См. Ниже (установите вид, в котором находятся ваши ярлыки):

for (int i; i = 0; i < 10; i++)
{
  double va = [varible1.text doubleValue] + i;

  UILabel * label = [theView viewWithTag: i];
  label.text= [[NSString alloc]initWithFormat:@"%2.1f", va];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...