自分メモです
#基本操作画面
#.swift拡張子
通常、
- AppDelegate.swift
- ViewController.swift
の2種類あります。
1つの.swiftに複数のclassを書くことができますが、通常は1つだけ書くようです。
##ViewController
###import
import UIKit
UIKitというフレームワークをインポートします。
デフォルトで用意されているようで、その機能を使ったり上書きしたりできます。
###class
UIKitで用意されているclassを、新しく使えるよう再利用します。
class 新しいクラス名: 元のクラス名
swiftにおけるclassについてはこちらが大変勉強になります。
参考:Xcode Swiftのクラス
###classのoverride
{}でclassの中に上書き=overrideします。
override func 新しいoverride名() {
super.元のoverride名()
}
###viewDidLoad
- viewDidLoadの中に書いたコードは、一番最初に実行される
- label.textに文字列を代入すると実際のラベルの内容が変化する
ちなみに、!(エクスクラメーションマーク)がついている意味はnullがあっていいかどうか、みたいな感じです。
参考:【swift】変数によく付いている「!」や「?」(ビックリマーク・クエスチョンマーク)の説明
###private var
- varは変数
- letが定数
その前に、privateとか色々ついているものがありますが、こちらがとてもわかりやすいです。
簡単に言うとprivateは、同じソース内の定義っぽい?
参考:Swift3 からのアクセスコントロール
#ボタンを押すたびに画像を変える
- Assetsの中に画像をドラッグ&ドロップで入れておく
- 画像をXcodeで使えるように定義する
var 任意変数名 = UIImage(named:"Assetsの中の画像名")! - 画像エリアを定義し、繋げる
ImageViewをcontrolを押しながらViewControllerまでつなげる - ボタンを繋げ、アクションを記述する
import UIKit
class ViewController: UIViewController {
//画像を定義 これが2.
//var 任意変数名 = UIImage(named:"Assetsの中の画像名")!
var imgtr = UIImage(named:"daishi")!
var img1 = UIImage(named:"db")!
var img2 = UIImage(named:"trmr")!
var img3 = UIImage(named:"daishi")!
//countNum という値を作り、0から始まる旨を記す
var countNum:Int = 0
//画像エリア定義 これが3.
@IBOutlet weak var daishi: UIImageView!
@IBOutlet weak var stamp1: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
daishi.image = imgtr
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
//ボタンのアクション これが4.
//ボタンを押すたびカウントが上がるようにし、そのカウントごとにif elseでイメージ表示
//stamp1エリア定義.image = 画像の定義
@IBAction func correct(_ sender: UIButton) {
countNum += 1
if countNum == 1 {
stamp1.image = img1
} else if countNum == 2 {
stamp1.image = img2
} else {
stamp1.image = img3
}
}
}
絶対もっと美しい方法があるはず……
#画像処理
参考:Swift画像処理の基礎知識 〜iOS標準の画像クラス・フレームワーク〜
参考:【iOS】【swift】たった数行で画像のフィルタ/エフェクトが実現できる超便利フレームワークCoreImage
#参考文献
http://www.atmarkit.co.jp/ait/articles/1601/08/news059_3.html
http://stickpan.hatenablog.com/entry/2016/02/22/193940
https://prog-8.com/
http://iphone-tora.sakura.ne.jp/
https://qiita.com/hironytic/items/6cc68ca93b428ba9194e