Je crois que je fais face à des problèmes d'affichage qui ne me permettent pas de détecter et d'ajouter des objets UIImageView
à un tableau. Je pourrais vraiment utiliser quelques suggestions.Ajout d'objets UIImageView dans UIView à NSMutableArray
J'ai plusieurs UIImageViews
avec des images liées à un UIView
qui se trouve au-dessus d'un UIViewController
(le UIView
a été ajouté pour aider à drawRect
et quelques avantages supplémentaires). Donc, quand je touche une image et que je la fais glisser, je veux ajouter cette image à un tableau après avoir été supprimée.
Mon touchesBegan
obtient l'emplacement du contact et des contrôles UIImageView
est touchée et les centres puis ce point de vue comme suit:
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
CGPoint location = [touch locationInView:self]; //can't use self.view in a UIView, this may be causing issues?
startLocation = location; // for reference as needed
NSLog(@"Image x coord: %f", location.x);
NSLog(@"Image y coord: %f", location.y);
if ([touch view] == obiWan_Block)
{obiWan_Block.center = location;}
else if ([touch view] == r2d2_Block)
{r2d2_Block.center = location;}
else if ([touch view] == you_Block)
{you_Block.center = location;}
}
Ensuite, je fais glisser la UIImageView
autour avec touchesMoved
et enfin, «baisse du image avec touchesEnded
. Lorsque le UIImageView
est déposé dans une certaine zone de l'écran, je l'enclenche à un endroit spécifique. C'est à ce moment que je veux placer ce UIImageView
dans un tableau, mais je n'ai pas de chance. Je crois que je suis confus sur les différents points de vue touchés et ce qui est ajouté via addObject
à mon NSMutableArray
. Ou, je pourrais manquer quelque chose complètement. Voici ma méthode touchedEnded
:
-(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
CGPoint location = [touch locationInView:self];
UIView *temp = [touch view];
UIImageView *currentImageView = (UIImageView *)[touch view]; //DON'T THINK THIS IS RIGHT
NSLog(@"Current Image View is: %@", currentImageView);
if ((location.x > dropZone.origin.x) && (location.y >= dropZone.origin.y) && ([touch view] != NULL))
{
CGRect frame = temp.frame;
if (touchCount == 0) {
frame.origin.x = 15;
frame.origin.y = 180;
temp.frame = frame;
[quoteArray addObject: currentImageView];
touchCount++;
}
else if (touchCount == 1) {
frame.origin.x = 70;
frame.origin.y = 180;
temp.frame = frame;
[quoteArray addObject: currentImageView];
touchCount++;
}
....
J'ai une déclaration NSLog
pour vérifier si addObject
fonctionne comme suit:
NSLog(@"the quote array contains %d items. Contents = %@",[quoteArray count], quoteArray);
Le journal dit toujours:
le tableau de devis contient 0 articles . Table des matières = (null)
S'il vous plaît aviser et merci!
Merci !! J'initialisais en effet mon NSMutableArray au mauvais endroit. Ce sont toujours les choses simples qui prennent des heures à réparer! :-) – jeffjohn01