Snapkit: рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдКрдкрд░/рдиреАрдЪреЗ рдкрд░ рдкрд┐рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ iOS8 рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 20 рд╕рд┐рддре░ 2016  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: SnapKit/SnapKit

рдирдпрд╛ рдЕрдВрдХ рдЪреЗрдХрд▓рд┐рд╕реНрдЯ

| рдЬрд╛рдирдХрд╛рд░реА | рдореВрд▓реНрдп |
| --- | --- |
| рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдо | рдЖрдИрдУрдПрд╕ |
| рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдо рд╕рдВрд╕реНрдХрд░рдг | 8.0 |
| рд╕реНрдиреИрдкрдХрд┐рдЯ рд╕рдВрд╕реНрдХрд░рдг | 3.0.1 |
| рдПрдХреАрдХрд░рдг рд╡рд┐рдзрд┐ | рдХреЛрдХреЛрдкреЛрдбреНрд╕/ |

рдореБрджреЗ рдХрд╛ рд╡рд┐рд╡рд░рдг

V0.21.0 рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ topLayoutGuide рдХреЗ рдиреАрдЪреЗ рдкрд┐рди рдХрд░рдХреЗ рдмрд╛рдзрд╛рдУрдВ рдХреЛ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рдерд╛:

view.snp_makeConstraints { make in
        make.top.equalTo(viewController.topLayoutGuideBottom)
}

рдЗрд╕реЗ fc298ae рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ UILayoutGuide рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди iOS8 рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ topLayoutGuide рдХреЗрд╡рд▓ iOS9+ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ:

view.snp_makeConstraints { make in
        make.top.equalTo(topLayoutGuide.snp.bottom)
}

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╣рд╛рдБ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ @tomquist рдХреНрдпрд╛ рдЖрдкрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХреА рдереА? рдореИрдВ рдмрд╕ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рдерд╛ рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реИред

рдЖрдкрдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

self.container.snp.makeConstraints { (make) -> Void in
  make.top.equalTo(vc.topLayoutGuide.snp.bottom)
  make.bottom.equalTo(vc.bottomLayoutGuide.snp.top)
}

рд╕реНрдиреИрдкрдХрд┐рдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдИрдУрдПрд╕ 8+ рдореЗрдВред рдирд╛рдо рднреНрд░рдорд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ UILayoutGuide рдХреЗ рдмрдЬрд╛рдп UILayoutSupport рд╣реИред

рд╕рднреА 10 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

@tomquist Ack, рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдореИрдВрдиреЗ 3.0.0 рд░рд┐рд▓реАрдЬрд╝ рд╕реЗ UIViewController DSL рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИред рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ рдФрд░ рдЕрдЧрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рддрдХ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдЬреЛрдбрд╝ рджреВрдБрдЧрд╛ред

@robertjpayne рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдореИрдВ рд╣рд░ рд╕рдордп рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ

@robertjpayne рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рдХреБрдЫ рдХрджрдо рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рдкреАрдЖрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

@sahandnaybaziz рдЖрдк ConstraintViewDSL рдФрд░ ConstraintLayoutGuideDSL рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдк рдореВрд▓ рд░реВрдк рд╕реЗ ConstraintViewControllerDSL рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдХреГрдкрдпрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ iOS/tvOS рдкрд░ рд╣реА рдЙрдкрд▓рдмреНрдз рд╣реИред

рдирдорд╕реНрддреЗ @tomquist

рдХреНрдпрд╛ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ topLayoutGuide рдХреЗрд╡рд▓ iOs 9+ , рдкреНрд░рд▓реЗрдЦрди рдХрд╣рддрд╛ рд╣реИ iOS 7.0+ ред

рд╕рдВрджрд░реНрдн:
рдЯреЙрдкрд▓реЗрдЖрдЙрдЯрдЧрд╛рдЗрдб
рдмреЙрдЯрдорд▓реЗрдЖрдЙрдЯрдЧрд╛рдЗрдб

рд╣рд╛рдБ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ @tomquist рдХреНрдпрд╛ рдЖрдкрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХреА рдереА? рдореИрдВ рдмрд╕ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рдерд╛ рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реИред

рдЖрдкрдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

self.container.snp.makeConstraints { (make) -> Void in
  make.top.equalTo(vc.topLayoutGuide.snp.bottom)
  make.bottom.equalTo(vc.bottomLayoutGuide.snp.top)
}

рд╕реНрдиреИрдкрдХрд┐рдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдИрдУрдПрд╕ 8+ рдореЗрдВред рдирд╛рдо рднреНрд░рдорд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ UILayoutGuide рдХреЗ рдмрдЬрд╛рдп UILayoutSupport рд╣реИред

рдЗрд╕реЗ рдмрдВрдж рдХрд░рдирд╛ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдЕрдм рдХреЛрдИ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЙрдкрд░реЛрдХреНрдд рдЯрд┐рдкреНрдкрдгреА ^^ . рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛, рдЬрдм рдореИрдВ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдпрд╣ рд╕реНрдХреНрд░реАрди рдЯреЙрдк рд╕реЗ тАЛтАЛрд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдореЗрд░рд╛ рдХреЛрдб

    func loadWebView() -> Void {
        let webConfiguration = WKWebViewConfiguration()
        webView = WKWebView(frame: .zero, configuration: webConfiguration)
        webView.uiDelegate = self
        view.addSubview(webView)

        webView.snp.makeConstraints { (maker) in
            maker.left.right.equalTo(view)
            maker.top.equalTo(topLayoutGuide.snp.top)
            maker.height.equalTo(300)
        }

        let myURL = URL(string: "http://bbs.iosre.com/")
        let myRequest = URLRequest(url: myURL!)
        webView.load(myRequest)
    }

рдФрд░ рдореБрдЭреЗ рджрд┐рдЦрд╛рдУ
image

@jacinzhang maker.top.equalTo(topLayoutGuide.snp.top) рд╢рд╛рдпрдж maker.top.equalTo(topLayoutGuide.snp.bottom) рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?

@robertjpayne рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рд▓рд╛рдкрд░рд╡рд╛рд╣ рд╣реВрдБред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Cookiezby picture Cookiezby  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Shehryar picture Shehryar  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

seljabali picture seljabali  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

romk1n picture romk1n  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

cjwirth picture cjwirth  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ