Sobes.tech
Junior — Middle

Hogyan valósult meg a SnapKit könyvtár alacsony szinten?

sobes.tech MI

Válasz az MI-től

A SnapKit egy könyvtár az Auto Layout korlátozásainak deklaratív létrehozásához iOS-en Swift nyelven. Alacsony szinten egy wrapperként működik az NSLayoutConstraint felett, egyszerűsítve a korlátozások létrehozását és aktiválását.

A megvalósítás fő pontjai:

  • A SnapKit láncolásokat (chaining) használ a korlátozások kényelmes leírására.
  • Belsőleg NSLayoutConstraint objektumokat hoz létre a szükséges paraméterekkel.
  • A SnapKit kezeli a korlátozások aktiválását és deaktiválását, hogy elkerülje a konfliktusokat.
  • Proxy-objektumokat használ a view-k és attribútumaik (pl. view.snp.left) reprezentálására.

Egyszerűsített kód példa, hasonló a SnapKithez:

view.snp.makeConstraints { make in
    make.left.equalTo(superview).offset(10)
    make.top.equalTo(superview).offset(20)
    make.width.height.equalTo(100)
}

A make egy objektum, amely összegyűjti a paramétereket és létrehozza az NSLayoutConstraint-et, majd aktiválja azokat.