Mikroprojekt:Bild drehen。 iOS(快速)。

源代码:https://github.com/mhennemeyer/image-rotation

Das Projekt设置程序最小化ViewController和Storyboard UI。 有关的数据源:RotationViewController.swift,Main.storyboard和MHImageEditing.swift。 情节提要中的RotationViewController的初始化和设计VC。 MHImageEditing.swift statt中的Bearbeitung des Bildes发现者。

Das gesamte UI ist im Storyboard konfiguriert。 Esgibt einen ImageView der das Bild zeigt,ein标签mit dem Winkel der Drehung in Grad,einm Slider undfünfButtons in einem StackView。

滑杆

请参见RotationViewController,以了解每个插座的滑块以及有关ValueChanged-Events的信息。 滑块的同步旋转值。

纽扣

Die Button unten,zum Drehen um einen festen Winkel,sind als Outlet Collection,mit dem jeweiligen Winkel als tag,angelegt und werden bei viewDidLoad per Loopüberdie Collection mit dem entsprechenden formatierten Titel VERSHEN。 达文·温克尔(Da der Winkel)唱片公司,纽伦(Buttons eine IBAction)乐队。 Der tag,bspw -90,wird zu Float konvertiert und,ebenso wie von der Slider Action aus,dann applyRotation(degree:Float)aufgerufen。

EIner statischen Funktion实现者的“ MHImageEditing.Rotation”中的“旋转旋转”,死于Bild und Winkel Annimmt和ein Neues,而um den Winkel gedrehtes和Bildzurückgibt。 Das istnatürlichGeschmacksache 可以使用每个扩展的UIImage来了解更多UIImage,例如,方法,方法,方法,对象,以及ImageRotator对象,以及Winkel das gedrehte Bild abfragbar机械手。 二人制的Statische Methoden,Wine eine Funktionssammlung,Nachteil dass sch schwieriger ist schlaue的帽子,Tricks zu verwenden。 schwieriger ist schlaue的Und den Vorteil dass es Tricks zu verwenden。 Meiner Erfahrung nach sind solche Funktionen zwar gelegentlich etwasumständlich,aber meist recht einfach nachzuvollziehen undüberallzu verwenden。 Mit Blick auf das Aufbauen einer eigenen Toolbox ist es auf jeden Fall ein guter Startpunkt。 设计人像,模型设计师schlaues Konzept verwirklichen zu wollen。

密码

FünfSchritten的Das Drehen des Bildes passiert。

  1. Ein Frame的护照保护者Größedas gedrehte Bild zu umfassen wird angelegt。
  2. Ein Grafikkontext wird mit derGrößedes umschliessenden帧初始化。
  3. Das Koordinatensystem des Grafik-Kontextes在Mitte des Frames geschoben中徘徊。
  4. Don Kontext wird um den Winkel gedreht。
  5. Das Bild wird in den Kontext geschrieben,das neue Bild aus dem Kontext ausgelesen和schliesslich von der Funktionzurückgegeben。

乌尔维希·霍赫和布雷特·阿布杰尼特(1.3)在格洛斯·奥夫布兹·阿布隆迪(Größeaufbzw abrundet)的体系中扮演了重要角色。

Der Grafikkontext

Das gedrehte Bild bekommt einen使Hintergrund(2.1)和Skalierung wirdübernommen(2.2)透明化。 DieGrößeliefertnatürlichdas umschliessende Rechteck。 赶快去Schritten吧。 备选案文(2)的替代品。 Dann der Referenzierung(2.3)负责人Kontexterhält(Zugriff auf den aktuellen Kontexterhält),Don Abderen des Inhaltes des Kontextes以及Bild und dem Schliessen des Kontextes(2.5)。

协调中心

框架中的通用框架(3)和宽度(b)宽度/ 2 bzw高度/ 2(5.1)的相似性,模拟zur 0,0 —框架,数字,0 0 Sondern im die Mitte dreht。 勒斯特(Lässt)死于韦格(Gäst),帽子男子登·塞尔本·埃夫克(Den selben Effekt)死于vorangegangenen Gif。 Don Kontext nun um den Mittelpunkt gedreht(4)。

Zeichnen

Nach diesen Vorbereitungen kann das Bild innerhalb eines Rechtecks在den Kontext geschrieben werden中。 迪恩斯(Dieses wird entgegen der Koordinatenverschiebung um jeweils)死于X bzw Y Richtung verschoben的HälftederGröße,所以dass es mittig liegt(5)。

命名空间

Eigentlich ist es ja,Unerem如此,所以dass SDK和Drittanbieter在本征名称空间中被吸纳liegen damit手册Anwendungsentwickler seinen ViewController停滞了ViewController的任职日期和时间MHViewController。 Die beschriebene Funktion诗集由Zigatfüreine eigene工具箱提供,作者是Sammlung von Funktionen和Konzepten。 状态和能力状态书目。 还可以使用命名空间Sinn。 Dass der Root-Namespace,MHImageEditing,作者枚举,Hintergrund dass diese nicht instanziiert werdenkönnen。