Quiz app discussie in Ontwikkelen voor iOS forum; ( verdwijnt na registratie ) Hoi Allemaal, Ik ben druk bezig met het oefenen van apps maken. Dit keer wou ik een soort test maken als "The idiot test" of ...
|
Registreer | FAQ | Ledenlijst | Kalender | Berichten van vandaag | Zoeken |
#1
|
|||
|
|||
Quiz app
Hoi Allemaal,
Ik ben druk bezig met het oefenen van apps maken. Dit keer wou ik een soort test maken als "The idiot test" of "The imbecile test". Mijn vraag is of ik dan voor iedere vraag een aparte view moet maken, of dat het ook simpeler kan? Ik heb flink rond gemailed/gebelt/gegoogled, en kom verschillende keren tegen dat je de items met hun coordinaten in een plist library, maar daar word ik niet veel wijs uit. Alvast bedankt, Marijn Laatst gewijzigd door bluecola; 25-08-10 om 02:01. |
|
|
Gesponsorde links (verdwijnt na registratie)
|
#2
|
||||
|
||||
uhmm als je met coordinaten gaat werken zouden meerdere views simpeler zijn lijkt me?
Vind ik zelf ook overzichtelijker eruit zien. |
#3
|
|||
|
|||
Nee het lijkt me niet handig als je voor iedere vraag een nieuwe view gaat maken.
Gebruik bv. een UITable met een cell voor de vraag en meerder cellen voor de antwoorden. Nu kan je gewoon de tabel herladen met je nieuwe vraag en antwoorden. |
#4
|
||||
|
||||
Als de vragen uit alleen tekst bestaan ja.
Ik dacht met idiot test dat hij ook bepaalde handeling zou moeten uitvoeren |
#5
|
|||
|
|||
Als ik het Object georiënteerd aanpak zou ik gewoon 1 view maken: VraagView ofzo. Die is verantwoordelijk voor het tonen van een vraag. Als je verschillende soorten vragen hebt (tekst, kies een plaatje, etc), kan je twee dingen doen: bij elke nieuwe vraag de View refreshen, voor het nieuwe type vraag. Dit type wordt dan in de VraagView bijgehouden als een property.
Of optie 2: Je maakt voor elk type vraag een subclasse van VraagView: TekstVraagView en PlaatjeVraagView. deze zijn dus afgeleid van VraagView en hebben dezelfde interface, maar "tekenen" zichzelf alleen op een andere manier. Telkens als je naar de volgende vraag gaat maak je een object aan van het juiste type.
__________________
Software Engineer iPhone Developer |
#6
|
|||
|
|||
Ik heb dus contact opgenomen met de developer van The Idiot Test 3. Hij zei dat hij de test had gemaakt door alle items met hun coordinaten in een plist tabel te zeggen, met maar een view dus. Kan iemand mij uitleggen hoe dit in elkaar zit?
Citaat:
Manier 1 van jou spreekt me wel aan, bij iedere vraag de view refreshen, hoe ga ik dat aanpakken? Manier 2 klinkt ook wel overzichterlijk, maar ook bij bijv. een vraag met veel buttons, staan de buttons niet op dezelfde plek, dus lijkt me dit geen optie? Als je voor iedere vraag een view maakt, dan word het denk ik een grote data homp. Zal niet vlug gaan. Laatst gewijzigd door bluecola; 25-08-10 om 16:15. |
#7
|
|||
|
|||
ik zou zoiets doen:
Code:
@interface VraagView : UIView { int vraagType; // bijv 1= tekst, 2 = plaatjes, 3 = iets anders NSDictionary *vragen; // alle vragen uit plist NSDictionary *vraag; // huidige vraag } - (id) initWithVraag:(NSDictionary *)vraag; - (void) reloadWithVraag:(NSDictionary *)vraag; - (void) createItems; // deze gaat alle items uit "vraag" tekenen. en voegt een onTouchUp event toe: - (void) onClick:(id)sender; // aan de sender kan je zien welk item er geklikt heeft - (BOOL) checkAnswer:(int)itemId; // checkt of het geklikte item juist is, en geeft dit terug - (void) nextVraag; // haalt de volgende vraag uit "vragen" en roept reloadWithVraag aan. - (void) gameOver; // laat scherm zien voor gameover. @end // in je plist ga je zo'n structuur krijgen: /* <aantalVragen/> <vragen> <vraag1> <vraagText/> <aantalAntwoorden/> <antwoorden> <antwoord1> <type/> <locatie> <x/> <y/> </locatie> <plaatje/> <tekst/> </antwoord1> <antwoord2> ... </antwoord2> </antwoorden> </vraag1> <vraag2> ... </vraag2> </vragen> met die plist doe je dan ongeveer dit: NSDictionary *dict=[NSDictionary dictionaryWithContentsOfFile:path]; om dan bij de coordinaten van het eerste antwoord te komen: NSArray *vragen = [dict objectForKey:@"vragen"]; NSDictionary *vraag = [vragen objectAtIndex: 1]; NSArray *antwoorden = [vraag objectForKey:@"antwoorden"]; NSDictionary *antwoord = [antwoorden objectAtIndex: 1]; NSNUmber *x = [antwoord objectForKey: @"x"]; NSNUmber *y = [antwoord objectForKey: @"y"]; */ Laatst gewijzigd door Whacko; 25-08-10 om 17:24. |
#8
|
|||
|
|||
Citaat:
1. Waar save ik de plaatjes? 2. Als ik de coordinaten van het plaatje ingeef (waar je moet klikken dus) is dat 1 pixel, terwijl alle pixels van het plaatje natuurlijk klikbaar moeten zijn? (Of zeg ik nu iets heel stoms?) |
#9
|
|||
|
|||
1. De plaatjes stop je gewoon in je Resources folder in XCode, of een andere: "Images" ofzo. Dan worden ze in je app meegebuild.
2. Als je UIImageView gebruikt, kan je hier een TouchUpInside Event aanhangen (even googlen hoe dat precies moet). Het hele plaatje is dan klikbaar. (als je dat niet wil kan je in de TouchUpInside, testen of de geklikte plaats ergens middenin het plaatje is). En je kan een position aan het plaatje geven, je geeft dan de coordinaten van de linker bovenhoek mee. |
#10
|
|||
|
|||
Ok, ik kom steeds verder. Als plist moet ik als type info of entitlement hebben?
|
#11
|
|||
|
|||
voor iPhone is er geen losse plist in het "new file" menu. Maar je kan die van Mac OSX gewoon gebruiken, zelfde formaat. "New > File > Mac OSX > Resources > Property List"
|
#12
|
|||
|
|||
Ik probeer die plist in elkaar te krijgen, met een oog op de structuur die je me gaf.
Mijn vraag is of ik zo goed zit : http://i36.tinypic.com/wcersp.png |
#13
|
|||
|
|||
Ja ziet er prima uit, alleen "Vragen" zou ik van het type "Array" maken (of list, ik weet niet hoe die precies heet).
Edit: oh en ik zou de positie twee losse velden maken van het type integer. Laatst gewijzigd door Whacko; 26-08-10 om 18:08. |
#14
|
|||
|
|||
Oke, neem ik mee. En wat nou als ik 5 afbeeldingen in mijn vraag wil? Dan moet ik dus 5x het veld afbeelding maken? Dat is dan het handigt? Of kan ik dan beter een array afbeelding onder de dictonary vraag1 maken met daarin 5 velden afbeelding?
|
#15
|
|||
|
|||
yep, beter om een array met afbeeldingen te maken.
|
#16
|
|||
|
|||
De functies moet ik zelf uitwerken in mijnappnaamviewcontroller.m ?(CreateItem, CheckAnswer, enz.)
en moet ik de vragen in de plist niet allemaal een ID meegeven?(integer) Zou je me kunnen vertellen hoe ik die functies moet uitwerken? (niet voorkauwen en stukjes codes geven, maar een beetje vertellen hoe.) Laatst gewijzigd door bluecola; 27-08-10 om 11:37. |
#17
|
|||
|
|||
De functies moet ik zelf uitwerken in mijnappnaamviewcontroller.m ?(CreateItem, CheckAnswer, enz.)
yep. en moet ik de vragen in de plist niet allemaal een ID meegeven?(integer) Kan je doen. is makkelijker om de vragen uit elkaar te houden ja Zou je me kunnen vertellen hoe ik die functies moet uitwerken? (niet voorkauwen en stukjes codes geven, maar een beetje vertellen hoe. Code:
- (id) initWithVraag:(NSDictionary *)vraag; // geef een van de items uit de Lijst van vragen mee tijdens het initializeren. Bouw hier dan gelijk je view op. Het beste is om de volgende functie hier aan te roepen. - (void) reloadWithVraag:(NSDictionary *)vraag; // Bouwt het scherm opnieuw op aan de hand van de meegegeven vraag. Gebruikt CreateItems, om het scherm te vullen met de plaatjes, en de vraag. - (void) createItems; // deze gaat alle items uit "vraag" tekenen. en voegt een onTouchUp event toe: - (void) onClick:(id)sender; // wordt aangeroepen als er op een image geklikt wordt. aan de sender kan je zien welk item er geklikt is. Geef dit door aan de volgende functie - (BOOL) checkAnswer:(int)itemId; // checkt of het geklikte item het juiste antwoord is, en geeft dit terug. Als het antwoord goed was, roep je nextVraag aan. En anders gameOver. - (void) nextVraag; // haalt de volgende vraag uit "vragen" en roept reloadWithVraag aan. - (void) gameOver; // laat scherm zien voor gameover. |
Er zijn 1 actieve gebruikers die momenteel deze discussie bekijken (0 leden en 1 gasten) |
|
Soortgelijke discussies |
||||
Discussie | Auteur | Forum | Reacties | Laatste bericht |
Music quiz voor iphone | Colburners | Jailbreak apps en thema's | 0 | 15-06-09 18:04 |
|
|