• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> 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.jpg Bildschirmfoto 2013-08-08 um 16.29.17.jpg Bildschirmfoto 2013-08-08 um 16.29.27.jpg Bildschirmfoto 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
 
Registriert
18.01.10
Beiträge
38
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

Moriarty

Pommerscher Krummstiel
Registriert
17.05.04
Beiträge
3.057
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