swiftで録音する
このままコピペしても動きませんでした
recorde関数のsetCategoryがそのままできなかったので、
以下のように変更
// try! session.setCategory(AVAudioSessionCategoryPlayAndRecord) try! session.setCategory(AVAudioSession.Category.playAndRecord, mode: AVAudioSession.Mode.default, options: AVAudioSession.CategoryOptions.defaultToSpeaker)
record関数で変なエラーが出て、
「info.plistにちゃんとマイクにアクセスするってことを書いて」って怒られるので、
info.plistに以下を追加してみる
[-以下が追記-]
録音を行う関数の中に、再生を行うためのイニシャライズ処理も入っているようでした
録音直後は再生できるけど、一度アプリを閉じた直後に再生できなくなるのはそのためっだったようです
以下が再生も行うためのソース
let session = AVAudioSession.sharedInstance() try! session.setCategory(AVAudioSession.Category.playAndRecord, mode: AVAudioSession.Mode.default, options: AVAudioSession.CategoryOptions.defaultToSpeaker) try! session.setActive(true)
これをしないと再生できない
UIColor設定できないよ!CGColorじゃね?って怒られるとき
こんな感じでボタンの線の色をグレイにしようとすると怒られる
btn.layer.borderColor = UIColor.lightGray
Cannot assign value of type 'UIColor' to type 'CGColor?'
こうするといい
btn.layer.borderColor = UIColor.lightGray.cgColor
動的に追加したボタンにジェスチャーを追加する
コードからボタンなどのオブジェクトを生成した時、
そのボタンを押されたとき、ドラッグされた時の処理を追加する
デザイナー(呼び方は正しいかわからない)からでは線を引っ張るだけだが、
コードではちょっとだけめんどい
でも思っていたよりは随分と楽にできたなと思う
040 GestureRecognizerのイベント取得 - Swift Docs
ここのサイトを参考に、
ジェスチャーイベントをボタンに追加する
let myPan = UIPanGestureRecognizer(target: self, action: #selector(ViewController.dragGesture(_:))) btn.addGestureRecognizer(myPan);
1行でもいいみたい
btn.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(ViewController.dragGesture(_:))))
dragGestureというのはドラッグした時に呼ばれる関数
サイトのソースをそのままコピるとその使い方できないよ
ってなるので、(Use of string literal for Objective-C selectors is deprecated; use '#selector' instead)
アップルのページを参考にする
ボタンのデザインを変える
ボタンのデザインを設定できるカスタムクラスを作り、
そのクラスでボタンを生成することでボタンの角を丸くしたり、ボーダーの色を変えることができます
SWIFTのバージョンでやっぱり怒られた
変更したコードは以下の通り
import UIKit @IBDesignable class Button_Custom: UIButton { @IBInspectable var textColor: UIColor? @IBInspectable var cornerRadius: CGFloat = 0 { didSet { layer.cornerRadius = cornerRadius } } @IBInspectable var borderWidth: CGFloat = 0 { didSet { layer.borderWidth = borderWidth } } // @IBInspectable var borderColor: UIColor = UIColor.clearColor() { // didSet { // layer.borderColor = borderColor.CGColor // } // } @IBInspectable var borderColor: UIColor = UIColor.clear { didSet { layer.borderColor = borderColor.cgColor } } }
swiftでカメラロールの写真を表示する
基本的には以下のコードなんですが、swiftのバージョンによりエラーになってしまいます
難儀ですね
以下のサイトのimagePickerController関数の引数をご参考ください
選択した画像を取得するのは
let image = info[.originalImage] as! UIImage
を参考に
ぶつかってきたオブジェクトがメンバ変数を参照する
シューティングゲームなど、
例えばAにBがぶつかったとき、Bが持っている変数を参照するやりかたを書いてみる
void OnTriggerEnter2D (Collider2D c) { Debug.Log (c.GetComponent<(Bが持つスクリプトファイルのクラス名)> ().(参照したい変数名));