Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  5 964
Heisan!

xcode - objektivC:

Jeg har mange buttons i appen min som heter b1, b2, b3, b4 osv...

Hvis jeg vil skjule alle knappene i et gitt område, f.eks. fra b20-b25, kan jeg gjøre slik:

b20.hidden=YES;
b21.hidden=YES;
b22.hidden=YES;
b23.hidden=YES;
b24.hidden=YES;
b25.hidden=YES;

Hvordan kan dette gjøres enklere med en loop, der tallene 20 og 25 kun er varibler (int), f.eks

int forsteHid=20;
int sisteHid=25;
Sist endret av hinsidige; 1. oktober 2013 kl. 12:12.
Jeg kan ikkje personlig Objective C, men jeg har en løsningn til deg.

1. Lag en array av buttons.
2. Loop igjennom arrayen og sett hidden propertien på hver array element.

Pseudokode:

Kode

  Button B_Array [] = {
    new Button(),
    new Button(),
    new Button()
  };

  for ( int i = 0; i < B_Array.length; i++ )
  {
    B_Array[i].hidden=TRUE;
  }
[/code]
Det du spør etter er ikke mulig i obj-c,
altså å bruker variabelnavn: b.[i] = hidden;

Det du må gjøre er å legge alle knappene i et array,
NSMutableArray.

Kode

int firstIndex = 1;
int lastIndex = 3;
int index = 0;

NSMutableArray *buttons = [[NSMutableArray alloc] init];
[buttons addObject:b19];
[buttons addObject:b20];
[buttons addObject:b21];
[buttons addObject:b22];
[buttons addObject:b23];
og så loope gjennom:

Kode

foreach (UIButton *button in buttons)
{
	if (index >= firstIndex && index <= lastIndex)
	{
		button.hidden = YES;
	} 
	
	index++;
}
Her vil da 20, 21 og 22 blir skjult. Kanskje ikke den beste løsningen, men jeg har ikke tid til å teste ut noe mer akkurat nå.
Takk for hjelp. Jeg løste det på denne måten (uten Array):

Her skjules button nr. 21-25.

Kode

- (void) skjulButtons{
    for (int i = 21; i < 26; i++) {
        NSString *key = [NSString stringWithFormat:@"b%d", i];
        UIButton *button = [self valueForKey:key];
        button.hidden=YES;
    }
}
Jeg omgår på en måte forbudet ditt, CokeLover... men det virker i hvert fall, og det ble få linjer koding.

Jeg har aldri brukt Array-funksjonen, så jeg får vel sette meg inn i den også...
Sitat av hinsidige Vis innlegg
Takk for hjelp. Jeg løste det på denne måten (uten Array):

Her skjules button nr. 21-25.

Kode

- (void) skjulButtons{
    for (int i = 21; i < 26; i++) {
        NSString *key = [NSString stringWithFormat:@"b%d", i];
        UIButton *button = [self valueForKey:key];
        button.hidden=YES;
    }
}
Jeg omgår på en måte forbudet ditt, CokeLover... men det virker i hvert fall, og det ble få linjer koding.

Jeg har aldri brukt Array-funksjonen, så jeg får vel sette meg inn i den også...
Vis hele sitatet...
Ikke så dum måte å løse problemet på. Det jeg mente var umulig var å bruke en "dynamisk" variabel på den måten som 0xFF hadde foreslått. Men flott at du deler løsningen sånn at andre (også jeg) kan dra nytte av dette
Foreach loopen er vel det samme som det som blir referert til som "for in" loop? Slik jeg forstår det er vel for in loopen bare nødvendig om det er ekstremt mye å kjøre igjennom, da for in loopen kjøres kjappere enn hinsidiges løsning. Det er skjeldent jeg faktisk bruker noe annen type loop enn den hinsidige nettopp viste
Sist endret av Proggy; 1. oktober 2013 kl. 23:09.