Domyślnie UIImageView obraca się tylko wokół jego środka. Jak mogę go obrócić wokół dowolnego innego punktu na obrazie?Jak mogę obrócić widok UIImageView względem dowolnego punktu (innego niż jego środek)?
Odpowiedz
Jednym ze sposobów jest zmiana anchorPoint warstwy bazowej UIImageView i obracanie wokół niej. Punkt obrotu można zmienić za pomocą następującego elementu:
imageView.layer.anchorPoint = CGPointMake(0.25, 0.25);
anchorPoint definiuje się w kategoriach współrzędnych względnych w warstwie. Oznacza to, że (0,0) jest lewą górną warstwą (na iPhone'ie, gdzie warstwy UIView mają odwrócone współrzędne Y), a (1,1) to dolne prawe.
Przenoszenie elementu anchorPoint może spowodować przeniesienie obrazu, dlatego może zajść potrzeba późniejszej regulacji jego położenia.
Aby obrócić warstwę obrazka o tym nowym punktem kontrolnym, można zmienić struct CATransform3D dla warstwy używając coś jak następuje:
CATransform3D rotatedTransform = imageView.layer.transform;
rotatedTransform = CATransform3DRotate(rotatedTransform, 60.0 * M_PI/180.0, 0.0f, 0.0f, 1.0f);
imageView.layer.transform = rotatedTransform;
Ten przykład robi przyrostową obrót 60 stopni wokół punktu zakotwiczenia .
Wszystkie zmiany w warstwie są domyślnie animowane. Można wyłączyć tę animację załączając swoje zmiany do tych właściwości w CATransaction jak następuje:
[CATransaction begin];
[CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions];
// Code for changes here
[CATransaction commit];
- 1. Jak mogę obrócić UIImageView w Interface Builder?
- 2. IOS: obrócić UIImageView
- 3. CSS obrotu względem punktu odniesienia
- 4. Obracanie punktu wokół innego punktu
- 5. Android, Jak mogę obrócić strzałkę (obraz) wokół ustalonego punktu?
- 6. Konwertuj mierniki na długość geograficzną z dowolnego punktu
- 7. three.js - w jaki sposób mogę obrócić cylinder wokół określonego punktu?
- 8. Pozycja DIV względem innego DIV?
- 9. Jak mogę niezawodnie obracać obraz wokół punktu?
- 10. UIImageView aspekt dopasowania i centrum
- 11. IDE zaćmienie punktu w celu użycia innego JRE/JDK innego niż określony w JAVA_HOME
- 12. Obracanie punktu wokół punktu za pomocą OpenCV
- 13. UIImageView "zgniecenia" po CGAffineTransformMakeRotation
- 14. Środek div poziomo
- 15. Jak "obrócić" warstwę/widok (np. Tak jak w enigmo)
- 16. Kiedy obrócić UIImageView z właściwości transform, z pixellate krawędzie
- 17. Obracanie punktu o inny punkt w 2D
- 18. Jak mogę obrócić widget kontenera w 2D wokół określonego punktu kontrolnego?
- 19. libgdx shaperenderer Jak obrócić prostokąt wokół jego środka?
- 20. Jak mogę wyświetlić widok selektora, tak jak robi to klawiatura?
- 21. Powtórz listę z dowolnego punktu początkowego i kontynuuj od początku?
- 22. Jak obrócić widok tekstu 90 stopni i wyświetlić
- 23. Jak obrócić widok do krajobrazu w aplikacji z kartą
- 24. Wyrównanie przycisków względem przycisku wewnątrz innego kontrolera
- 25. AS3 Obróć obiekt wokół jego punktu środkowego.
- 26. Powrót widok z innego obszaru
- 27. Jak mogę pomniejszyć widok?
- 28. Jak wywołać widok innego kontrolera w mvc4
- 29. Załaduj widok do innego widoku
- 30. Jak programowo dodać UIImage do UIImageView następnie dodać UIImageView do innego UIView?
Wystarczy dodać kilka uwag tutaj dla moich przyszłych jaźni: '#import #import 'i musisz również zaimportować framework' QuartzCore'. Dzięki. –
, ale to przesuwa obraz, jak mówisz. Czy możliwe jest przesunięcie punktu kontrolnego? – hfossli
@Fossli - Nie, położenie warstwy jest powiązane z jej punktem kontrolnym. Jednak stosunkowo łatwo jest ustalić, jaka powinna być nowa pozycja dla warstwy i zmienić zarówno punkt kontrolny, jak i położenie warstwy w jednej nieanimowanej transakcji. –