Slide 1

Slide 1 text

·ͩ Storyboard Ͱফ໣ͯ͠Δͷʁ ϏδϡΞϧϦϓϦθϯςʔγϣϯ ᴷᴷRe:θϩ͔Β࢝ΊΔࢹ֮දݱ ʢ࣮ફฤʣ

Slide 2

Slide 2 text

Who am I? MAGES. Inc. Game Div. iOS Developer @loveeʢ੕໺ܙྤʣ ktanaka117 ࢯʹʮͦͷՖʯʹϋϚΒͤͨ ݩڟˡ!!!

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

Storyboard ͷࡑ ಈతʹมΘΔϨΠΞ΢τʹϓϨϏϡʔͮ͠Β͍ ࢓༷มߋʹରԠ͠ʹ͍͘ ιʔείʔυͱͷϦϯΫ͕ʮ!ʯ ιʔείʔυͱͷؔ܎͕Θ͔ΓͮΒ͍ ViewController ʹ࢓ࣄԡ͠෇͚͗͢

Slide 5

Slide 5 text

Auto Layout ͱ͔͍͏ΰϛ ෳࡶͳϨΠΞ΢τʹରԠͰ͖ͳ͍ ੍໿͸શͯಉҰώΤϥϧΩʔ ʮ=ʯ͸ʮ୅ೖʯͰ͸ͳ͘ʮ౳߸ʯ Ϋιଟ͍ɺ୳ͮ͠Β͍ɺϝϯςੑ௿͍ ϒϥοΫϘοΫε

Slide 6

Slide 6 text

࣮ફฤ

Slide 7

Slide 7 text

ViewController ͷ࢓ࣄ // ࣗલͷϏϡʔΛΛ VC ͷϏϡʔʹઃఆ͢Δ
 override func loadView() { let view = View(frame: UIScreen.main.bounds) self.view = view } // ͓ͳ͡Έͷ viewDidLoad Ͱͷৄࡉઃఆ override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. self.view.backgroundColor = .white }

Slide 8

Slide 8 text

View ͷ࢓ࣄ // ඞཁͳαϒϏϡʔͳͲͷએݴ΍ઃఆ lazy var label: UILabel = { let label = UILabel() label.text = "Hello, World" return label }() // αϒϏϡʔΛ௥Ճ͢Δ override func didMoveToSuperview() { super.didMoveToSuperview() self.addSubview(self.label) } // αϒϏϡʔΛϨΠΞ΢τ͢Δ override func layoutSubviews() { super.layoutSubviews() self.label.sizeToFit() self.label.center = CGPoint(x: self.frame.width / 2, y: self.frame.height / 2) }

Slide 9

Slide 9 text

Tips on layoutSubviews() ࣗ෼Ͱࣗ෼ͷαΠζΛઃఆ͠ͳ͍ ϝϯςੑͷ޲্ ඳըαΠΫϧͷಛੑ αΠζ͕ಈతʹมΘΔϏϡʔ͸ sizeThatFits(_:) ϝιουͷΦʔ όʔϥΠυͳͲͰ਌Ϗϡʔʹઃఆͯ͠΋Β͏

Slide 10

Slide 10 text

Tips on layoutSubviews() transform ϓϩύςΟʔʹมߋ͕͋ΔڪΕͷ͋ΔϏϡʔ͸ frame Ͱ͸ ͳ͘ bounds ͱ center Λઃఆ͢Δ frame ϓϩύςΟʔ͸ͦ΋ͦ΋ bounds ͱ center ʹ transform Λ ద༻ͨ͠৔߹ͷදݱʹ͗͢ͳ͍ ͦͷͨΊ .identity Ҏ֎ͷ transform ϓϩύςΟʔΛ࣋ͭ UIView ʹ௚઀ frame Λઃఆ͢Δͱද͕͓͔ࣔ͘͠ͳΓ·͢

Slide 11

Slide 11 text

Tips on layoutSubviews() ͳΔ΂͘γϯϓϧͰܭࢉྔΛ͔͚͗͢ͳ͍Α͏ʹ৺͕͚Δ ϑϨʔϜมߋ΍ setNeedsLayout() ͕ݺ͹Εͨ࣌ʹඞͣݺ͹ΕΔ ࣗ෼͚ͩͰͳࣗ͘෼ͷࢠϏϡʔͷ layoutSubviews() ΋ݺ͹ΕΔ Ϗϡʔ͕ଟ͍΄Ͳܭࢉྔ͕૿͑Δ

Slide 12

Slide 12 text

ָ͍͠ϨΠΞ΢τϥΠϑΛʂ

Slide 13

Slide 13 text

Thank you