[Swift] Ich möchte Gitterlinien (Quadrate) zeichnen.

Ausführung

XCode 11.3.1

Referenz

https://qiita.com/Sa2Knight/items/4debc1f66db8cd958803 Dieser Code ist in einer for in-Anweisung zusammengefasst.

Vollständiges Formular

スクリーンショット 2020-02-14 17.19.01.png Rasterlinien werden in UIImageView wie folgt angezeigt.

Dateivorbereitung

スクリーンショット 2020-02-14 17.37.54.png

Storyboard-Vorbereitung

スクリーンショット 2020-02-14 17.30.42.png

Nachdem Sie die ImageView im Storyboard platziert haben, Ich werde die Klasse auf GridView setzen. (Zuerst erstellte Datei) Außerdem ** Da die anzuzeigende Gitterlinie weiß ist, ändern Sie die Hintergrundfarbe in etwas anderes als Weiß. Ändern Sie die Farbe der Gitterlinien. ** **. Von hier aus schreiben wir den Code in die zuerst erstellte Grid.swift-Datei.

Code

//
//  Grid.swift

import UIKit

class GridView: UIView {
    //splitCount sollte gerade sein
    //Vertikale Linie:Anzahl der splitCount- 1
    //horizontale Linie:Anzahl der splitCount/ 2 - 1
    let splitCount = 10
    
    override func draw(_ rect: CGRect) {
        let path = UIBezierPath()
        path.lineWidth = 1.5
        
        UIColor.white.setStroke()
        for x in 0...splitCount {
            for y in 0...splitCount {
                if x != y, x == 0, y < splitCount {
                    path.move(to: getPoint(rect, x: CGFloat(x), y: CGFloat(y)))
                    path.addLine(to: getPoint(rect, x: CGFloat(splitCount), y: CGFloat(y)))
                    path.stroke()
                } else if x < splitCount, x % 2 == 0, x != 0, y == 0 {
                    path.move(to: getPoint(rect, x: CGFloat(x), y: CGFloat(y)))
                    path.addLine(to: getPoint(rect, x: CGFloat(x), y: CGFloat(splitCount)))
                    path.stroke()
                }
            }
        }
    }
  /*Rufen Sie die Koordinaten der angegebenen Partition in der Ansicht ab*/
  private func getPoint(_ rect: CGRect, x: CGFloat, y: CGFloat) -> CGPoint {
    let width = rect.width / CGFloat(splitCount)
    let height = rect.height / CGFloat(splitCount)
    return CGPoint(x: width * x, y: height * y)
  }

}

Ändern Sie einfach den Wert der Konstanten splitCount Sie können die Anzahl der Gitterlinien ändern.

Recommended Posts

[Swift] Ich möchte Gitterlinien (Quadrate) zeichnen.
[Swift] Ich möchte so etwas wie Cs Sprint machen
Ich möchte Zeichen konvertieren ...
Ich möchte den oberen Rand in der UITableView von Grouped entfernen (schnell)
Ich möchte eine Webanwendung entwickeln!
Ich möchte ein schönes build.gradle schreiben
Ich möchte doppelte Fehlermeldungen beseitigen
Ich möchte eine ios.android App machen
Ich möchte DBViewer mit Eclipse 2018-12 verwenden! !!
Ich möchte einen Unit Test schreiben!
Ich möchte PHP 7.2 unter Ubuntu 20.04 installieren.
Ich möchte Java-Updates insgesamt stoppen
Ich möchte @Autowired in Servlet verwenden
Ich möchte statische Felder auf @Autowired ausrichten
Ich möchte die Teamentwicklung aus der Ferne durchführen
Ich möchte nach Tabulatortrennzeichen mit Rubin sortieren
R von Java ausführen Ich möchte rJava ausführen
Ich möchte eine E-Mail in Java senden.
Ich möchte von npm richtig abschließen [2020]
[Ruby] Ich möchte einen Methodensprung machen!
Ich möchte Java8 für jeden mit Index verwenden
Ich möchte den Inhalt der Absicht var_dump
Ich möchte APP_HOME an Logback in Gradle übergeben
Ich möchte eine einfache Wiederholung einer Zeichenkette schreiben
Ich möchte eine Struktur für die Ausnahmebehandlung entwerfen
rsync4j - Ich möchte rsync in Java berühren.
Ich möchte mit Firestore von Rails spielen
Ich möchte irgendwann sogar in Kotlin sein
Ich möchte schnell von Java nach SQLite schreiben
Ich möchte nach dem Dezimalpunkt abschneiden
Ich möchte einfache Fehler reduzieren. Sich selbst befehlen.
Ich möchte die Aggregationsverarbeitung mit Spring-Batch durchführen
[Rails] Ich möchte CSS mit Webpacker laden
Ich möchte eine von Git verwaltete Datei löschen
Ich möchte den Wert in Ruby erhalten
Ich möchte Combine auch in UIKit verwenden.
Ich möchte eine Methode einer anderen Klasse aufrufen
Ich möchte so etwas wie "cls" in Java machen
[Java] Ich möchte die Differenz zum Datum berechnen
Ich möchte NetBeans auf einem Mac verwenden → Ich kann es verwenden!
Ich möchte eine TraceId in das Protokoll einbetten
Pointcut-Ausdruck Ich möchte mehr als einen angeben
Ich möchte auch in Laradock Fischschalen verwenden! !!
Ich möchte ES2015 auch in Java verwenden! → (´ ・ ω ・ `)
Gelernter Stream (Ich möchte List in Map <Integer, List> konvertieren)
Ich möchte den Bereich anhand des monatlichen Abschlusses beurteilen
Ich möchte ein kleines Symbol in Rails verwenden
Ich möchte die Antwort der Janken-App wissen
Ich möchte den Namen des Posters des Kommentars anzeigen
Ich möchte den Dunkelmodus mit der SWT-App verwenden
Ich möchte eine bestimmte Datei mit WatchService überwachen