Ich habe eine Schaltfläche mit einem iBoutlet verknüpft. Wenn Sie auf die Schaltfläche klicken (* Schaltfläche), wird eine Beschriftung generiert. Das Etikett kann in jeder Position auf dem Bildschirm bewegt werden. Wenn ich erneut auf den Knopf klicke, wird ein anderes Etikett erzeugt, aber ich kann das erste nicht mehr bewegen. Ich suchte im Internet und fand ich eine NSMutableArray verwenden müssen, aber dies scheint nicht zu funktionieren:Verschieben von UILabels auf dem Bildschirm mit NSMutablearray
in.m
-(IBAction)button3Pressed:(id)sender{
self.buttonBrush.selected = NO;
self.buttonBrush.highlighted = NO;
self.buttonlabel.selected = YES;
self.buttonlabel.highlighted = YES;
self.buttontextbox.selected = NO;
self.buttontextbox.highlighted = NO;
CGRect labelFrame = CGRectMake(400, 100, 100, 30);
label1 = [[UILabel alloc] initWithFrame: labelFrame];
[label1 setText: @"Untitled"];
[label1 setTextColor: [UIColor orangeColor]];
[self.view addSubview:label1];
label1.backgroundColor = [UIColor clearColor];
if (array == nil) array = [[NSMutableArray alloc]init];
[array addObject:label1];
}
dann
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
//label1
if (buttonlabel.selected == YES){
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView:self.view];
UIView *touchedView = [touch view];
if ([array containsObject:touchedView]){
touchedView.center = location;
}
}
}
in .h I hinzugefügt :
IBOutlet UILabel *label1;
NSMutableArray *array;
Vielen Dank im Voraus für die Hilfe
Sie haben einen einzigen ‚=‘ anstelle von ‚==‘ in der letzten if-Anweisung. Denken Sie auch nicht, dass es viel Sinn macht, Ihr Array mit IBOOutlet zu dekorieren. – onnoweb