Ich versuche, ein ziehbares Bild (Affe) an die Stelle eines anderen ziehbaren Bildes (Banane) zu setzen, wenn ich einen Knopf drücke.
Bisher konnte ich die Koordinaten der Banane abrufen und sie als neue XY-Koordinaten des Affen speichern. Aber die Ansicht aktualisiert sich nicht und der Affe bewegt sich nicht an seinen neuen Platz.
Ich bin sicher, dass ich die Ansicht aktualisieren muss, kann es aber nicht herausfinden. Ich habe versucht, eine neue Unteransicht hinzuzufügen (self.view.addSubview (affe)), aber wenn ich das tue, ist es die gesamte Ansicht, die zurückgesetzt wird und sowohl Affen als auch Banane gehen zu ihren ursprünglichen Koordinaten zurück.
Hier ist der Code der Aktionsschaltfläche:
%Vor%Irgendeine Idee, wie man nur den Affen aktualisiert und nicht die gesamte Ansicht zurücksetzt?
Danke:)
Diese Werte werden einfach weggeworfen, wenn Sie monkeyx
und monkeyy
unten setzen.
Wenn Sie die folgenden Werte zuweisen, werden nur die Werte einer lokalen Variablen einer anderen zugewiesen. Es ändert nicht wirklich die Koordinaten für monkey
.
Sie müssen die neuen Koordinaten auf affe setzen, indem Sie ein neues CGRect
erstellen und monkey
's frame
:
Da Sie den Ursprung von monkey
auf den Ursprung von banana
setzen, können Sie alle var-Deklarationen entfernen und auf eine Zeile reduzieren, indem Sie den neuen Rahmen von monkey
mit monkey
s konstruieren Größe und banana
's Herkunft:
Hi create das erweitert, wenn Sie möchten. Für Swift
Create File Extends.Swift und diesen Code hinzufügen
%Vor%Zur Verwendung (erbt von UIView)
%Vor%Wenn Sie ein UIImageView für Affen und Bananen verwenden, können Sie dies vereinfachen, indem Sie Folgendes tun:
%Vor%Verstehen Sie, dass es einen Unterschied zwischen Ursprung und Zentrum gibt. Sehen Sie mehr hier:
UIViews Rahmen, Grenzen, Mittelpunkt, Ursprung, wann Verwenden Sie was?
aber basierend auf Frage, denke ich, sollte Zentrum gut funktionieren und es ist einfacher.
Tags und Links swift uiview frame uiimageview