Swift 学習メモ vol.01

###はじめに

Swiftを9月から始めました。
勉強したメモを書いていきます。

###勉強で使ったもの
Swift - Photo Gallery App (StoryBoard + Actions & Outlets) pt. 1/5
http://youtu.be/ztIBNHOm35E
https://github.com/TDAbboud/PhotosGalleryApp

* メモがわかりにくかったらここを参照してください。

###今回の成果物
![gif01.gif](https://qiita-image-store.s3.amazonaws.com/0/15925/80290b15-139a-4b79-3279-bbe411516937.gif)

画像ギャラリーを作るためのはじめの一歩といった感じです。

###インタフェースをストリーボードに配置する

#### ViewControllerを配置する
![img01.jpg](https://qiita-image-store.s3.amazonaws.com/0/15925/365e3995-ae65-df61-112a-12c31f8e52bd.jpeg)

#### Navigation Controllerを配置する
![img02.jpg](https://qiita-image-store.s3.amazonaws.com/0/15925/1f392ee5-7b1c-c798-b31e-f5db6de0ab58.jpeg)

####CollectionViewをPhotoCellとして定義する
![img03.jpg](https://qiita-image-store.s3.amazonaws.com/0/15925/91a699be-9ec2-4851-c7b5-9158837e6a43.jpeg)


###CollectionViewの中にImageViewを配置し、PhotoCellとして定義する
![img04.jpg](https://qiita-image-store.s3.amazonaws.com/0/15925/c235589e-af91-9b67-ec30-b16ed6509c42.jpeg)


###ImageViewとfullscreenViewを関連付ける
![img05.jpg](https://qiita-image-store.s3.amazonaws.com/0/15925/3b6b26eb-9525-2ae3-07df-340f1d766c40.jpeg)

Showを選択する

####NavigationItemをViewに配置する。
![Screen Shot 2014-09-13 at 3.20.56 PM.png](https://qiita-image-store.s3.amazonaws.com/0/15925/0cba2eec-69ba-2e15-1464-90319a833713.png)

####UIImageViewをフルスクリーンで配置
![img07.jpg](https://qiita-image-store.s3.amazonaws.com/0/15925/b7a51dbd-9325-e064-cf67-ca2aaf1aab68.jpeg)

###Coding

####ViewPhotoクラスを作成
![img08.jpg](https://qiita-image-store.s3.amazonaws.com/0/15925/00ce285b-d799-c44b-41d9-1ea59032a4e5.jpeg)

####ViewPortクラスをストリーボードで関連付けする
![img09.jpg](https://qiita-image-store.s3.amazonaws.com/0/15925/23091747-53aa-ce4a-1e36-95c19e9b5f85.jpeg)


####配置したボタンをアクション接続する
![img10.jpg](https://qiita-image-store.s3.amazonaws.com/0/15925/d92b109f-19c1-260e-91fe-d769b8d9322f.jpeg)

**追加したコード**

```swift:ViewPhoto.swift
import UIKit

class ViewPhoto: UIViewController {

    @IBAction func btnCancel(sender: AnyObject) {
        println("Cancel")
        
        self.navigationController?.popToRootViewControllerAnimated(true)
    }
    
    
    @IBAction func btnTrush(sender: AnyObject) {
        println("trush")
    }
    
    @IBAction func btnExport(sender: AnyObject) {
        println("Export")
    }
    
    @IBOutlet weak var ImgView: UIImageView!
    
    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    


}

```
1. ロートコントローラに戻る。

### ViewControllerのコードと関連付けを行う。
![img11.jpg](https://qiita-image-store.s3.amazonaws.com/0/15925/cb37827d-0a5e-f81d-7e10-69dd0c85cda7.jpeg)




```swift:ViewPhoto.swift
import UIKit

let reuseIdentifier = "PhotoCell"

class ViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout {

    @IBOutlet var collectionView: UICollectionView!
    
    @IBAction func btnCamera(sender: AnyObject) {
    }
    
    @IBAction func btnPhotoAlbum(sender: AnyObject) {
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    // uicollectionViewDataSource method
    
    func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int{
        return 1
    }
    
    // The cell that is returned must be retrieved from a call to -dequeueReusableCellWithReuseIdentifier:forIndexPath:
    func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell{
        let cell: UICollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as UICollectionViewCell
        
        // modify the cell
        cell.backgroundColor = UIColor.redColor()
        
        return cell
    }


}  
```

###今後に向けて
今回はpart1だけのみなので、今後もすすめていきます。