• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

2D-Rotation einer View mit CGAffineTransformMakeRotation

Moriarty

Pommerscher Krummstiel
Registriert
17.05.04
Beiträge
3.057
Hallo Leute,

ich habe länger nichts mit Cocoa Touch mehr gemacht, und fürchte, ich bin ein wenig eingerostet. Brüte schon den ganzen Tag über einer Sache, die ich vor längerem schon mal umgesetzt hatte, und da funktionierte es einwandfrei...

Ich will zu Testzwecken einen rudimentären Kompass basteln, und wollte im ersten Schritt einen Slider (mit Werten von 0-360) zur Simulation der Gradangabe nutzen.

Der Slider soll dann den Wert an die View geben, die die Kompassnadel darstellt. Eigentlich sollte diese sich dann um den Mittelpunkt drehen, aber stattdessen verformt sie sich seltsam im dreidimensionalen Raum.

Hier mal die Methode im ViewController.m:

Code:
- (IBAction)sliderValueChanged:(id)sender {    //Slider ansprechen
    UISlider *slider = sender; 
    //Bewegung der Nadel mit Umrechnung ins Bogenmaß
    _compassNeedle.transform = CGAffineTransformMakeRotation(M_PI * slider.value / 180.0);
}

Und das passiert dann...
Bildschirmfoto 2013-08-08 um 16.29.07.jpgBildschirmfoto 2013-08-08 um 16.29.17.jpgBildschirmfoto 2013-08-08 um 16.29.27.jpgBildschirmfoto 2013-08-08 um 16.29.41.jpg

Das kann man jetzt schlecht mit Standbildern zeigen, aber die View macht nicht was sie meiner Meinung nach machen sollte, nämlich um ihren Mittelpunkt in 2D rotieren, sie "verformt" sich stattdessen irgendwie dreidimensional.

Was habe ich übersehen?

Gruß
Dennis
 
Hi,

setze beim erzeugen deiner Kompassnadel mal den contentMode

Code:
[COLOR=#3D1D81][COLOR=#000000][view [/COLOR]setContentMode[COLOR=#000000]: [/COLOR]UIViewContentModeCenter[COLOR=#000000]];[/COLOR][/COLOR]

Gruß
Manfred
 
  • Like
Reaktionen: Moriarty
Danke, Manfred, aber das war es leider nicht. Die View war auch korrekt gecentert...

Aber ich habe den Grund gefunden: Das mit Xcode 4.5 eingeführte Autolayout hat mit seinen Constraints für Verwirrung gesorgt.
Im File Inspector den Haken "Use Autolayout" raus - und schon klappt die Drehung...

Bildschirmfoto 2013-08-08 um 20.51.25.png

Viele Grüße
Dennis