Swift: Firebase 3 – How to Load Entire Chat Log per User (Ep 12)

my review point is 8/10

https://youtu.be/azFjJZxZP6M?t=1m40s   table view에서 하나의 row를 선택한경우 ( didSelectRowAtIndexPath ) 

https://youtu.be/azFjJZxZP6M?t=10m38s   UICollectionViewDelegateFlowLayout 사용하여 collection view 스타일 수정하기 

https://youtu.be/azFjJZxZP6M?t=10m45s   collection view cell size 설정하기 

https://youtu.be/azFjJZxZP6M?t=12m   firebase에서 여러개의 데이터를 가져오는 방법

https://youtu.be/azFjJZxZP6M   collection view cell 을 만드는 방법

https://youtu.be/azFjJZxZP6M?t=22m22s   collection view 에 cell view를 등록하는 방법

https://youtu.be/azFjJZxZP6M?t=27m40s   collection view 를 드래그 해서 바운스 되게 하는 작업

Swift: How to Chain Animations for Impressive Visual Effects

my review point is /10

https://youtu.be/xWNv-j75OQ8?t=5m34s   programmatically setting up auto layout (크기 설정하는 방법, 좌우 앵커 설정하는 방법, 글자 크기, 멀티라인 설정)

numberOfLines 프로퍼티 설정 (0)으로 멀티 라인 이 가능해 진다

https://youtu.be/xWNv-j75OQ8?t=10m26s   애니메이션 설명 (addGestureRecognizer)

https://youtu.be/xWNv-j75OQ8?t=11m5s   stack view에서 각 요소별 간격 조정 (UIStackview.spacing)

Implementing iOS 8 Auto Layout Constraints in Swift Code – Techotopia

my review point is 10/10

NSLayoutConstraint 사용법의 예시 (길이10분정도)

//  ViewController.swift

//  boundsAndFrame

//

//  Created by AJ Norton on 8/27/15.

//  Copyright © 2015 AJ Norton. All rights reserved.

//

import UIKit

class ViewController: UIViewController {

 override func viewDidLoad() {

   super.viewDidLoad()

   // Do any additional setup after loading the view, typically from a nib.

   let v1 = UIView(frame: CGRectMake(50, 50, 300, 200))

   v1.backgroundColor = UIColor.redColor()

   self.view.addSubview(v1)

   let v2 = UIView()

   v2.backgroundColor = UIColor.greenColor()

   v2.setTranslatesAutoresizingMaskIntoConstraints(false)

   v1.addSubview(v2)

   v1.addConstraint(

     NSLayoutConstraint(item: v2,

       attribute: NSLayoutAttribute.Left,

     relatedBy: NSLayoutRelation.Equal,

     toItem: v1,

     attribute: .Left,

     multiplier: 1,

     constant: 0))

   v1.addConstraint(

     NSLayoutConstraint(item: v2,

       attribute: NSLayoutAttribute.Right,

       relatedBy: NSLayoutRelation.Equal,

       toItem: v1,

       attribute: .Right,

       multiplier: 1,

       constant: 0))

   v1.addConstraint(

     NSLayoutConstraint(item: v2,

       attribute: NSLayoutAttribute.Top,

       relatedBy: NSLayoutRelation.Equal,

       toItem: v1,

       attribute: .Top,

       multiplier: 1,

       constant: 0))

   v1.addConstraint(

     NSLayoutConstraint(item: v2,

       attribute: NSLayoutAttribute.Height,

       relatedBy: NSLayoutRelation.Equal,

       toItem: v1,

       attribute: .Height,

       multiplier: 0.5,

       constant: 0))

 }

 override func didReceiveMemoryWarning() {

   super.didReceiveMemoryWarning()

   // Dispose of any resources that can be recreated.

 }

}