PGメモ

非エンジニアの記録

swiftでのコードのみで画面遷移

navigation controller使わずに遷移

let nextView = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("Detail") as UIViewController
self.presentViewController(nextView, animated: false, completion: nil)

navigation controller使ってに遷移

let storyboard = UIStoryboard(name: "Main", bundle:nil)
let pageViewController = storyboard.instantiateViewControllerWithIdentifier("Detail") as! DetailViewController
self.navigationController?.pushViewController(pageViewController, animated: true)

UIImageViewにAspect Fillで画像を表示する際にはみ出ないようにする対応

storyboaed上image viewを選択し、DrawingのClip Subviewsにチェックを入れる。

ボタンに長押しを実装する [Xcode6 / Swift]

import UIKit

class ViewController: UIViewController {

  @IBOutlet var startBtn: UIView!

  override func viewDidLoad() {
    super.viewDidLoad()
    
    let myLongPressGesture = UILongPressGestureRecognizer(target: self, action: "pushStartBtn:")
    myLongPressGesture.minimumPressDuration = 0.1
    self.view.addGestureRecognizer(myLongPressGesture)
  }

  @IBAction func pushStartBtn(sender: UILongPressGestureRecognizer) {
    // todo
  }

}

こんな感じ

conflicts with optional requirement methodの解決方法[Xcode6 / swift]

conflicts with optional requirement method 

なぜかこれが出ちゃった。

解決方法としてメソッド名を消し、手打ちしたら治った。

うーむ

subviewを消す [Xcode / swift]

addSubviewし続けるとメモリ消費も増え続けます。
なので追加したsubviewを消してメモリを解放します。

            var subviews = self.view.subviews
            for subview in subviews{
                subview.removeFromSuperview()
            }