Ich bin sehr neu in Xamarin Welt und neu in seiner Steuerung. Ich möchte in meiner Mono-Touch-App Kreise hinzufügen, um den Fortschritt der Arbeit anzuzeigen. Um Fortschritt anzuzeigen, muss ich einen Bogen im Kreis markieren. Und wenn irgend möglich kann mir jemand einen Beispielcode helfen. Warten auf eine Antwort, Vielen Dank im Voraus.
Eigentlich sollte ich das eigentlich machen. Es funktioniert für mich
So sieht es aus. Sie können es wie eine Klassendatei erstellen und einfach einer UIView zuweisen. Für mehr Referenz können Sie dieses Beispielprojekt Pi Graph
verwenden [EDIT]: Die Methode Draw
hat ursprünglich die View.Frame
x, y an die Methode DrawGraph
übergeben. Dies sollte View.Bounds
sein (oben geändert, um dies widerzuspiegeln). Denken Sie daran, dass der Frame x, y sich auf die übergeordnete Ansicht bezieht und die Grenzen auf die aktuelle Ansicht verweisen. Dies hätte funktioniert, wenn die Ansicht bei 0,0 hinzugefügt wurde, aber sobald Sie anfangen, sich auf der Benutzeroberfläche zu bewegen, verschwindet sie. Wenn die Bögen gezeichnet werden, müssen sich die Werte für x, y, die an AddArc übergeben werden, auf die aktuelle Ansicht und nicht auf die übergeordnete Superansicht beziehen.
Das Zeichnen eines Kreises auf einem GLContext ist nicht so schwierig und ist dasselbe wie in Objective-C oder Swift.
Ich nehme an, Sie möchten Ihre eigene Ansicht erstellen, die Sie wiederverwenden können. Erben Sie dazu einfach von UIView
:
Um nun etwas in Ihrer neuen benutzerdefinierten Ansicht zu zeichnen, müssen Sie die Methode Draw
überschreiben:
Um Dinge zu zeichnen, müssen Sie den aktuellen Kontext von UIGraphics
erhalten, was wie folgt geschehen kann:
Das CGContext
, das du zurückbekommst, ist dem Beispiel von Canvas
auf Android sehr ähnlich. Es hat Hilfsmethoden, um Bögen, Kreise, Rechtecke, Punkte und vieles mehr zu zeichnen.
Um einen einfachen Kreis in diesem Kontext zu zeichnen, tun Sie Folgendes:
%Vor%Kombiniere alles, was du bekommst:
%Vor%Das ist es! Nun, nicht genau, hier müssen Sie anfangen darüber nachzudenken, wie Sie Ihren Fortschrittsindikator zeichnen möchten. Was ich denke, würde wahrscheinlich funktionieren:
gctx.AddArc()
einen Bogen zu erstellen, der einen Winkel einnehmen und einen Bogen zeichnen kann. Um eine Zeichenkette zu zeichnen, müssen Sie Ihre Zeichenkette in NSAttributedString
konvertieren und dann CTLine
verwenden, um den Text wie folgt zu zeichnen:
Geringfügige Änderungen an der Antwort, die @SARATH beim Kopieren und Einfügen lieferte, führten nicht zum gewünschten Ergebnis.
Geändert von _degrad zu _percentComplete
Es wurde ein Überladungskonstruktor für das Ändern von Farben behoben, indem ein Parameter für ProzentKomplett hinzugefügt und fehlende Elementvariablenzuweisungen für _backColor und _frontColor
hinzugefügt wurdenKonstanter Gleitkommawert zum Zeichnen eines vollständigen Kreises (FULL_CIRCLE)
hinzugefügtMultiplizieren Sie _percentComplete mit FULL_CIRCLE, um den Endwinkel für beide Bögen (mit unterschiedlichen Richtungen) zu erhalten.
Berechnung des Radius
%Vor%Beispiel
%Vor%CircleGraph bei 75%
Tags und Links c# ios xamarin.ios xamarin