[Swift] Je veux dessiner des lignes de quadrillage (carrés)

version

XCode 11.3.1

référence

https://qiita.com/Sa2Knight/items/4debc1f66db8cd958803 Ce code est résumé dans une instruction for in.

Formulaire rempli

スクリーンショット 2020-02-14 17.19.01.png Les lignes de la grille sont affichées dans UIImageView comme ceci.

Préparation du dossier

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

Préparation du storyboard

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

Après avoir placé ImageView sur le Storyboard, Je vais définir la classe sur GridView. (Premier fichier créé) De plus, ** La ligne de quadrillage à afficher étant blanche, changez la couleur d'arrière-plan en autre chose que le blanc, Changez la couleur des lignes de la grille. ** ** De là, nous écrirons le code dans le fichier Grid.swift créé en premier.

code

//
//  Grid.swift

import UIKit

class GridView: UIView {
    //splitCount doit être pair
    //Ligne verticale:Nombre de splitCount- 1
    //ligne horizontale:Nombre de 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()
                }
            }
        }
    }
  /*Obtenez les coordonnées de la partition spécifiée sur la vue*/
  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)
  }

}

Changez simplement la valeur de la constante splitCount Vous pouvez modifier le nombre de lignes de la grille.

Recommended Posts

[Swift] Je veux dessiner des lignes de quadrillage (carrés)
[Swift] Je veux faire quelque chose comme sprinftf de C
Je veux convertir des caractères ...
Je veux supprimer la marge supérieure dans UITableView de Grouped (swift)
Je souhaite développer une application web!
Je veux écrire un joli build.gradle
Je souhaite éliminer les messages d'erreur en double
Je veux créer une application ios.android
Je souhaite utiliser DBViewer avec Eclipse 2018-12! !!
Je veux écrire un test unitaire!
Je souhaite installer PHP 7.2 sur Ubuntu 20.04.
Je veux arrêter complètement les mises à jour Java
Je veux utiliser @Autowired dans Servlet
Je souhaite cibler les champs statiques sur @Autowired
Je veux faire du développement d'équipe à distance
Je veux trier par délimiteur d'onglet avec ruby
Exécuter R à partir de Java Je veux exécuter rJava
Je souhaite envoyer un e-mail en Java.
Je souhaite terminer correctement l'installation de npm [2020]
[Ruby] Je veux faire un saut de méthode!
Je veux utiliser java8 forEach avec index
Je veux var_dump le contenu de l'intention
Je souhaite transmettre APP_HOME pour me connecter à Gradle
Je veux écrire une simple répétition d'une chaîne de caractères
Je souhaite concevoir une structure pour la gestion des exceptions
rsync4j --Je veux toucher rsync en Java.
Je veux jouer avec Firestore de Rails
Je veux être finalement même à kotlin
Je veux écrire rapidement de java vers sqlite
Je veux tronquer après la virgule décimale
Je veux réduire les erreurs simples. Pour vous commander.
Je souhaite effectuer un traitement d'agrégation avec spring-batch
[Rails] Je veux charger du CSS avec webpacker
Je souhaite supprimer un fichier géré par Git
Je veux obtenir la valeur en Ruby
Je souhaite également utiliser Combine dans UIKit.
Je veux appeler une méthode d'une autre classe
Je veux faire quelque chose comme "cls" en Java
[Java] Je souhaite calculer la différence par rapport à la date
Je veux utiliser NetBeans sur Mac → Je peux l'utiliser!
Je veux intégrer n'importe quel TraceId dans le journal
Expression de pointage Je souhaite en spécifier plusieurs
Je veux aussi utiliser des coquillages à Laradock! !!
Je veux aussi utiliser ES2015 avec Java! → (´ ・ ω ・ `)
Flux appris (je veux convertir la liste en carte <Integer, List>)
Je veux juger la gamme en utilisant le diplôme mensuel
Je veux utiliser une petite icône dans Rails
Je veux connaître la réponse de l'application Janken
Je souhaite afficher le nom de l'affiche du commentaire
Je souhaite utiliser le mode sombre avec l'application SWT
Je souhaite surveiller un fichier spécifique avec WatchService