iCulture forum | iPhone, iPad,  iPod touch, Apple TV en iOS

iCulture forum | iPhone, iPad, iPod touch, Apple TV en iOS (https://forum.iculture.nl/)
-   Ontwikkelen voor iOS (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/)
-   -   Probleem plaatsen meerdere UIImageViews (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/23735-probleem-plaatsen-meerdere-uiimageviews.html)

rderuiter 16-10-08 16:06

Probleem plaatsen meerdere UIImageViews
 
Ik maak langzaam vorderingen met het leren van Objective-C en mijn eerste app. Ik heb loop nu echter tegen een probleem aan waardoor ik al een aantal dagen geen vorderingen meer heb gemaakt.

Ik wil graag een soort dambord maken. Hiervoor had ik in eerste instantie een UIView die via drawRect een x aantal vierkantjes tekende. Deze UIView werd gecentreerd geplaatst en ik zag dat het goed was.

Nu moeten de UIView "blokjes" vervangen worden door UIImageView instanties aangezien ik daarmee simpel een plaatje kan gebruiken en animeren, etc.
Ik probeer nu eerst 2x2 blokjes gecentreerd op het scherm te tekenen, ik zie er echter maar 1; linksboven @0,0.
Wat ik geprobeerd heb is UIView gebruiken ipv UIImageView, de bounds instellen van elk blokje, elk blokje een nieuw frame geven, niets van dit alles hielp. De coordinaten van de bounds en frames zijn 100% zeker weten goed; ik printf ze steeds en controleer de uitvoer.

Voor de duidelijkheid zie het plaatje hieronder. Het grote witte vlak is mijn RootView, daarop word centraal een klein subview geplaatst welke ik hier blauw gekleurd heb. Het enige dat blokje dat nu zichtbaar word, is die linksbovenin het blauw vak.

Enige hulp zou zeer worden gewaardeerd :)

edit:
Ik heb nu geprobeerd de UIImageViews als instance variabelen te gebruiken, net zoals het DambordView op het RootView zeg maar. Dan worden de plaatjes wel netjes geplaatst, maar ik ben niet van plan 64 plaatjes er hard in te coden. Ik wil ze gaan bijhouden in een array, Dictionary oid.

Pixxa 16-10-08 17:34

Quartz niet wat je zoekt?

rderuiter 16-10-08 17:37

Eeh, geen idee. Hoe bedoel je precies?

Pixxa 16-10-08 22:10

Met Quartz zou je toch een schaakbord moeten maken. Vraag me niet hoe :)

Quartz verzorgd de 2D

rderuiter 16-10-08 22:12

Ik weet dat Quartz iets dergelijks als de 2d door hardware versnelde toolkit is van Apple, maar daar koop ik niets voor ;)
Wat ik wil is vrij simpel en moet zeker mogelijk zijn met UIView code lijkt me.

gekkepietje 17-10-08 08:52

Het is een beetje moeilijk om aan te geven wat er fout gaat in je code, omdat er honderd dingen fout kunnen zijn waardoor het niet werkt. Als je nu eens alles uit je code haalt wat hier niets mee te maken heeft, en het dan nog eens probeert. Lukt het dan nog niet, dan kun je je code ergens online zetten zodat we kunnen zien wat je precies doet.

Anyway, het is inderdaad mogelijk dit te doen met UIImageViews. Je maakt voor een 2x2 bord 4 UIImageViews aan en die voeg je toe aan je hoofd-View. Dan zet je de center property van die views om ze op de juiste plaats te positioneren.

Zoiets in je ViewController:

Code:

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIImage* poppetjeImage = [UIImage imageNamed:@"Poppetje.png"];
    UIImageView* poppetjeView = [[UIImageView alloc] initWithImage:poppetjeImage];
    self.poppetje = poppetjeView;
    [poppetjeView release];

    [self.view addSubview:poppetje];

    poppetje.center = CGPointMake(100, 100);

    // en dat doe je dan voor al je UIImageViews
}

In de .h staat iets als:

Code:

@interface MijnViewController : UIViewController
{
    UIImageView* poppetje;
}

@property (nonatomic, retain) UIImageView* poppetje;

(Het heet hier poppetje omdat het uit een spelletje van mij komt.)

P.S. Ik zie het plaatje niet dat je bedoelt in je eerste post.

rderuiter 17-10-08 15:05

Citaat:

Oorspronkelijk geplaatst door gekkepietje (Bericht 206665)

Code:

@interface MijnViewController : UIViewController
{
    UIImageView* poppetje;
}

Ik ben er inmiddels, half per ongeluk achtergekomen. Het declareren van het UIImageview zoals hierboven blijkt noodzakelijk om het te kunnen gebruiken. Ik maakte ze gewoon ter plekke aan dus niet als instance variabele.
Weer iets geleerd i guess :)

P.S. Ik zie het plaatje niet dat je bedoelt in je eerste post.

Inderdaad, plaatje mee vergeten te posten, oeps :)

Toch bedankt voor het meedenken.


Alle tijden zijn GMT +2. Het is nu 16:39.