2017-02-21 23 views
1

Я довольно новичок в объекте-c, и я пытаюсь установить массив меток в 0.0 Alpha с циклом for. Может ли кто-нибудь помочь мне?Objective-C: настройка альфа-значения с помощью массива элементов

NSArray *fadeLabels = @[@"_lonLabel", @"_firstLat",@"_firstLon",@"_firstReal",@"_firstMagnetic",@"_firstSpeed",@"_speedLabel",@"_realNorthLabel",@"_magneticNorthLabel"]; 

    for (int i=0; i<[fadeLabels count]; i++) { 
     [fadeLabels objectAtIndex:i]; 
     //setAlpha:0.0f? 
    } 

ответ

2

использование массив представлений вместо массива строк. вставьте свои представления в массив.

NSArray *fadeLabels = @[ _lonLabel, _firstLat, _firstLon, _firstReal, _firstMagnetic, _firstSpeed, _speedLabel, _realNorthLabel, _magneticNorthLabel]; 

for (int i=0; i<[fadeLabels count]; i++) { 
    UIView *view = (UIView *)[fadeLabels objectAtIndex:i]; 
    [view setAlpha:0.0f]; 
} 
+0

спасибо, что было :) – FuManchu

1

Вы назначаете массив с String с именем является equalTo вашего UILabel объекта поэтому вам нужно

заменить элементы массива, как это

@"_lonLabel" к _lonLabel

NSArray *fadeLabels = @[ _lonLabel, _firstLat, _firstLon, _firstReal, _firstMagnetic, _firstSpeed, _speedLabel, _realNorthLabel, _magneticNorthLabel]; 

    for (int i=0; i<[fadeLabels count]; i++) { 
     UILabel *label = (UILabel *)fadeLabels[i]; 
     label.alpha = 0.0; 

    } 
+0

у вас есть синтаксические – hasan83

+0

спасибо за ответ, но я получаю один голос только :) – FuManchu

+0

правда, если все виды все этикеток. но, концепция такая же. – hasan83

1

Вы также должны лучше использовать for...in вместо «старого» for.

NSArray *fadeLabels = @[ _lonLabel, _firstLat, _firstLon, _firstReal, _firstMagnetic, _firstSpeed, _speedLabel, _realNorthLabel, _magneticNorthLabel]; 

for (UILabel *label in fadeLabels) { 
    label.alpha = 0.0; 
} 
+0

отлично, спасибо за предложение :) – FuManchu