SwiftLayout - View hierarchy and autolayout DSL library

Related tags

Layout SwiftLayout
Overview

SwiftLayout

view hierarchy and autolayout DSL library

goal

뷰의 계층구조와 constraint 관계를 편리하고 보기 쉽게 설정할 수 있는 라이브러리를 목표로 하고 있습니다.

    let yellow = UIView()
    yellow.backgroundColor = .yellow
    
    let green = UIView()
    green.backgroundColor = .green
    
    let red = UIView()
    red.backgroundColor = .red
    
    let blue = UIView()
    blue.backgroundColor = .blue
    
    // view의 계층구조에서 별도의 constraint를 지정하지 않으면 
    // 항상 부모뷰의 top, bottom, leading, parent에 붙습니다.
    view {
        if flag {
            yellow {
                green
            }
        } else {
            red {
                blue
            }
        }
    }
Comments
  • using ConfigPropertiesHandler

    using ConfigPropertiesHandler

    i have rough idea want showing up. @gmlwhdtjd

    By

    1. handling properties with key that their name
    2. using default initializer for view in UIKit.
    3. handling custom view and UIKit view by CustomConfigurableProperties

    ETC

    • principal code is newly added regist() function and that is main result of this idea.

    • all of codes has in rough.

    • UIView and subclasses has same initializer, and in most cases, it's okay to create it directly from the type. for default reference view. additionally, can hand over default reference view instance upon request.

    • adding ConfigPropertiesHandlable for customizable and standardization to regist configurable properties.

    • using regist function for regist prepared configs and, also adding custom configs.

    • CustomConfigurablePropertys also good approach for customzing of properties, i want both. so may this needs priority. currently, CustomConfigurablePropertys more higher priority than registed properties.

    • DefaultConfigurablePropertys now has some logics and contains value, so change name and type to final class ConfigurableProperties and add default static self instance.

    opened by oozoofrog 9
  • improving testing

    improving testing

    #213

    implementation test cases now has a solid, detailed and concrete structure by @gmlwhdtjd

    so, we can now make more flexible api for DSL testing with layout API.

    • [x] flexible and non-invasive testing constraint
    • [x] testing view
    • [ ] ~flexible testing view (how possible)(someday)~
    enhancement test 
    opened by oozoofrog 6
  • Anchor!

    Anchor!

    기존의 ConstraintBinding을 Anchor로 전환

    1

    root {
        child.anchors {
            Anchor.top.leading.bottom.trailing.equalTo(red, attribute: .leading)
        }
        red.anchors {
            Anchor(red).top.trailing.bottom
        }
    }
    

    2

    root {
        child.anchors {
            Anchor.top.bottom.leading.trailing
        }.subviews {
            red.anchors {
                Anchor.centerX.centerY
            }
        }
    }
    
    enhancement 
    opened by oozoofrog 6
  • NSLayoutAnchor가 Constraint을 상속하도록 개선

    NSLayoutAnchor가 Constraint을 상속하도록 개선

    root {
        red.anchors {
            red.topAnchor
            red.leadingAnchor
            red.trailingAnchor
            red.bottomAnchor.constraint(equalTo: blue.topAnchor)
        }
        blue.anchors {
            blue.leadingAnchor
            blue.trailingAnchor
            blue.bottomAnchor
        }
    }
    
    
    enhancement 
    opened by oozoofrog 5
  • prefix for Layoutable

    prefix for Layoutable

    do we needs like this?

    class View: UIView, Layoutable {
      func someFunction() {
        self.sl.layout() // new
        self.updateLayout() // deprecation
      }
    }
    ```swift
    opened by oozoofrog 4
  • improvement/anchors

    improvement/anchors

    • modifying some functions in Anchors to more clearer overloading for autocompletion instead of using default parameter values.
    • add tests for anchor rules
    enhancement 
    opened by oozoofrog 4
  • hiding of Activation class from external of library

    hiding of Activation class from external of library

    i can't find now elegant strategy more than using [associated object] for hide activation type from out of library :(

    Activations must be released as well when the owner is freed from memory because it has reference of view and constraints for some api features. that means owner must have owning reference of activation type.

    so I have two option, using associated object api or user should write activation property like in previous commits.

    anyway there are very good advantages to hiding activation property. that give to LayoutBuilding api more usability and flexibility.

    please see LayoutHostingViewController

    enhancement 
    opened by oozoofrog 4
  • Add more constraint method: startBracket endBracket (#256)

    Add more constraint method: startBracket endBracket (#256)

    This commit provide two additional methods for the existing methods. Start Bracket, End Bracket

    Start Bracket can specify uniform constraints for top, leading, and bottom, as the name suggests. End Bracket can specify uniform constraints for top, trailing, and bottom, as the name suggests.

    The trailing and bottom are implemented to provide -1.0 multiples to apply the correct Offset.

    Thank you.

    opened by della-padula 3
  • refactorings and adds

    refactorings and adds

    1 pr like 2n pr

    • add LayoutProperty property wrapper
    • binding with LayoutProperty to updateLayout

    https://user-images.githubusercontent.com/3011832/156927820-e734f23e-4f28-4f59-949e-8f4f7cf84cb0.mov

    • LayoutBuilding change to Layoutable
    • Layout to make seems like View protocol and removing LayoutBuilding was my first plan, but, gave up. couldn't find advantage except looks good.
    • update SwiftUI representable
    스크린샷 2022-03-06 오후 11 14 54
    opened by oozoofrog 3
  • Better way to implement DefaultConfigurablePropertys

    Better way to implement DefaultConfigurablePropertys

    To implement DefaultConfigurablePropertys, successive If-else statements are used to check types.

    This approach is not suitable for future readability and extensibility, so I want to implement it in a new way rather than the current way.

    However, since all views inherit UIView, implementing it in a form such as UIVIew.defaultConfigutablePropertys() cannot be overridden, so it is difficult to achieve what I want, and it is impossible even if I use procotol.

    I am in need of a new idea for implementation and I am asking for your help.

    enhancement in progressing 
    opened by gmlwhdtjd 2
  • support SwiftUI

    support SwiftUI

    class SampleUIView: UIView, Layoutable {
      ...
    }
    struct SampleView: View {
      var body: some View {
        VStack {
          Text("HELLO")
          SampleUIView(frame: .zero).sl.swiftUI
      }
    }
    

    I forgot this 😹

    • [x] support SwiftUI with sl.swiftUI
    • [x] support print view information for debugging at updating ui view
    enhancement 
    opened by oozoofrog 2
  • Remove the part that uses accessibilityIdentifier

    Remove the part that uses accessibilityIdentifier

    accessibilityIdentifier is a value for developers, so it is not too much of a problem to use it in our package. However, problems may occur when using our package in a project to which UITest is applied, so we need to remove it.

    enhancement 
    opened by gmlwhdtjd 0
Releases(2.8.0)
  • 2.8.0(Nov 24, 2022)

    What's Changed

    • improve autocompletion of Anchors by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/260
    • Improved expression of anchors by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/262
    • Swift version update by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/263
    • ListLayout for variable types of Layouts to containing with type specification by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/261
    • 2.8.0 by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/264

    Full Changelog: https://github.com/ioskrew/SwiftLayout/compare/2.7.0...2.8.0

    Source code(tar.gz)
    Source code(zip)
  • 2.7.0(Oct 17, 2022)

    What's Changed

    • type erase from TupleLayout by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/241
    • add default configurable properties for UISwitch by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/237
    • add version check and fix misspellings by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/243
    • add LayoutOption - isNotArranged by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/244
    • update readme by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/247
    • Relieve the maximum number of sub-items limit for sublayout method by @della-padula in https://github.com/ioskrew/SwiftLayout/pull/250
    • Improve Activator.updateConstraints by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/252
    • Unexpected Crash - When updating the layout after manually calling NSLayoutConstraint.deactiavte(_:) by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/255
    • rename Layout.anyLayout property to eraseToAnyLayout() and add to UIView by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/258

    New Contributors

    • @della-padula made their first contribution in https://github.com/ioskrew/SwiftLayout/pull/250

    Full Changelog: https://github.com/ioskrew/SwiftLayout/compare/2.6.0...2.7.0

    Source code(tar.gz)
    Source code(zip)
  • 2.6.0(Aug 8, 2022)

    What's Changed

    • Remove call as function by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/225
    • add comments for anchor combinating functions by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/227
    • View printer congifuration by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/226
    • Add combination anchor by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/228
    • [renaming] defualt -> default by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/229
    • Config properties sorting by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/230
    • Change the configuration output of UIImage, UIFont, and UIColor to mu… by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/231
    • Better way to implement DefaultConfigurablePropertys by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/232
    • 2.6.0 by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/236

    Full Changelog: https://github.com/ioskrew/SwiftLayout/compare/2.5.4...2.6.0

    Source code(tar.gz)
    Source code(zip)
  • 2.5.4(May 13, 2022)

    What's Changed

    • Add priority method to anchors by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/222
    • split XCTViewAssert to each of purpose by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/223

    Full Changelog: https://github.com/ioskrew/SwiftLayout/compare/2.5.3...2.5.4

    Source code(tar.gz)
    Source code(zip)
  • 2.5.3(Apr 14, 2022)

    What's Changed

    • improving testing by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/215
    • no more tabbed on tests by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/217
    • fix only identifier option for view printer by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/216
    • fix maintain subview ordering by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/218
    • fix arranged subview ordering in UIStackView by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/219
    • remove deprecated method in Layoutable by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/220
    • 2.5.3 by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/221

    Full Changelog: https://github.com/ioskrew/SwiftLayout/compare/2.5.2...2.5.3

    Source code(tar.gz)
    Source code(zip)
  • 2.5.2(Apr 4, 2022)

    What's Changed

    • improving for IdentifierUpdater by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/203
    • support SwiftUI by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/201
    • Remove tag by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/207
    • Feature/distribute tests by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/209
    • suggest upper/lower case rules for README by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/208
    • improving set constant and multiplier in Anchors by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/212
    • remove dependencies of other libraries from tests by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/210
    • 2.5.2 by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/214

    Full Changelog: https://github.com/ioskrew/SwiftLayout/compare/2.5.1...2.5.2

    Source code(tar.gz)
    Source code(zip)
  • 2.5.1(Apr 1, 2022)

    What's Changed

    • improving of README by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/181
    • fix ambiguous use of Anchors.size by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/179
    • fix/swiftlayoutprinter by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/180
    • support UIStackView by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/182
    • add ModularLayout by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/184
    • Feature/animatable layout property by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/187
    • re-architecting Anchors by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/186
    • subscripts for any object call self in some conditions by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/189
    • ViewTags.tag to generic for prevent type erasing by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/190
    • Split the library into SwiftLayout and SwiftLayoutUtil by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/188
    • 2.5.0 by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/199

    Full Changelog: https://github.com/ioskrew/SwiftLayout/compare/2.1.0...2.5.1

    Warning

    As of 2.5.0, the syntax of Anchors has changed. Code incompatible with <=2.1.0.

    Source code(tar.gz)
    Source code(zip)
  • 2.5.0(Mar 31, 2022)

    What's Changed

    • improving of README by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/181
    • fix ambiguous use of Anchors.size by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/179
    • fix/swiftlayoutprinter by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/180
    • support UIStackView by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/182
    • add ModularLayout by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/184
    • Feature/animatable layout property by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/187
    • re-architecting Anchors by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/186
    • subscripts for any object call self in some conditions by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/189
    • ViewTags.tag to generic for prevent type erasing by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/190
    • Split the library into SwiftLayout and SwiftLayoutUtil by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/188
    • 2.5.0 by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/199

    Full Changelog: https://github.com/ioskrew/SwiftLayout/compare/2.1.0...2.5.0

    Warning

    As of 2.5.0, the syntax of Anchors has changed. Code incompatible with <=2.1.0.

    Source code(tar.gz)
    Source code(zip)
  • 2.1.0(Mar 24, 2022)

    What's Changed

    • 2.1.0 by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/176

    Full Changelog: https://github.com/ioskrew/SwiftLayout/compare/2.0.1...2.1.0

    Source code(tar.gz)
    Source code(zip)
  • 2.0.1(Mar 10, 2022)

    What's Changed

    • add DocC by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/120
    • update readme 2.0.1 by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/149

    Full Changelog: https://github.com/ioskrew/SwiftLayout/compare/2.0.0...2.0.1

    Source code(tar.gz)
    Source code(zip)
  • 2.0.0(Mar 10, 2022)

    What's Changed

    • Layout protocol redesign by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/146
    • LayoutBuilder uses buildExpression to build UIView and Optional by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/130
    • add GroupLayout by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/123
    • add updateIdentifiers method by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/126
    • add center to Anchors by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/144
    • update layout without LayoutBuilding by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/128
    • refactoring anchors by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/129
    • update SwiftLayoutPrinter by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/121
    • update readme for 2.0 by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/145
    • removing of user handling in SwiftLayout for animation by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/136
    • remove deactivable and change deactivation to activation by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/137
    • remove LayoutAnchor by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/139
    • remove layout options by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/138

    Full Changelog: https://github.com/ioskrew/SwiftLayout/compare/1.7.0...2.0.0

    Source code(tar.gz)
    Source code(zip)
  • 1.7.0(Feb 27, 2022)

    What's Changed

    • add extensions for Anchors by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/102
    • Add setMultiplier method to anchor by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/103
    • anchors from layoutanchor by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/104
    • anydeactivable by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/105
    • UIView now configurable in Layout by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/106
    • Update UIView+LayoutAnchor.swift by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/107
    • anchor attributes extract from dummy view by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/108
    • add final active by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/109
    • simple bug fix by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/110
    • update readme by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/111
    • find property identifier on inheritances by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/112
    • identifying trailing enabled after config by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/113
    • update traverse logics for empty layout and UIView by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/114
    • some fixes by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/115
    • improve updating by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/116
    • individual animation handler by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/117
    • update test cases by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/118

    Full Changelog: https://github.com/ioskrew/SwiftLayout/compare/1.6.2...1.7.0

    Source code(tar.gz)
    Source code(zip)
  • 1.6.2(Feb 21, 2022)

    What's Changed

    • fix print incorrect syntax by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/101

    Full Changelog: https://github.com/ioskrew/SwiftLayout/compare/1.6.1...1.6.2

    Source code(tar.gz)
    Source code(zip)
  • 1.6.1(Feb 21, 2022)

    What's Changed

    • Code cleanup by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/97
    • SwiftLayoutPrinter now print sublayout instead of subviews by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/100

    Full Changelog: https://github.com/ioskrew/SwiftLayout/compare/1.6.0...1.6.1

    Source code(tar.gz)
    Source code(zip)
  • 1.6.0(Feb 21, 2022)

    What's Changed

    • test code refactoring by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/96
    • layout now has multiple root layouts by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/94
    • concrete layout types by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/95

    Full Changelog: https://github.com/ioskrew/SwiftLayout/compare/1.5.0...1.6.0

    Source code(tar.gz)
    Source code(zip)
  • 1.5.0(Feb 18, 2022)

    What's Changed

    • improvement/SwiftLayoutPrinter by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/92
      • SwiftLayoutPrinter receive options on initializing by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/93

    Full Changelog: https://github.com/ioskrew/SwiftLayout/compare/1.4.1...1.5.0

    Source code(tar.gz)
    Source code(zip)
  • 1.4.1(Feb 18, 2022)

  • 1.4.0(Feb 18, 2022)

    What's Changed

    • SwiftLayoutPrinter more simplified by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/88
    • improvement/anchors by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/89

    Full Changelog: https://github.com/ioskrew/SwiftLayout/compare/1.3.4...1.4.0

    Source code(tar.gz)
    Source code(zip)
  • 1.3.4(Feb 17, 2022)

    What's Changed

    • Delete .DS_Store by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/85
    • Update .gitignore by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/86
      • identifying before constraint process by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/87

    Full Changelog: https://github.com/ioskrew/SwiftLayout/compare/1.3.3...1.3.4

    Source code(tar.gz)
    Source code(zip)
  • 1.3.3(Feb 17, 2022)

    What's Changed

    • options by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/84

    Full Changelog: https://github.com/ioskrew/SwiftLayout/compare/1.3.2...1.3.3

    Source code(tar.gz)
    Source code(zip)
  • 1.3.2(Feb 17, 2022)

    What's Changed

    • finding view identifiers swiftlayoutprinter by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/81

    Full Changelog: https://github.com/ioskrew/SwiftLayout/compare/1.3.1...1.3.2

    Source code(tar.gz)
    Source code(zip)
  • 1.3.1(Feb 16, 2022)

    What's Changed

    • update github action by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/79
    • suppress fatal error from LayoutImp by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/78

    Full Changelog: https://github.com/ioskrew/SwiftLayout/compare/1.3.0...1.3.1

    Source code(tar.gz)
    Source code(zip)
  • 1.3.0(Feb 16, 2022)

    What's Changed

    • update minimum tool chain version by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/66
    • update readme for logo by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/67
    • ConstraintItem to ConstrantableItem by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/68
    • hiding all default implementation from Layout protocol by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/69
    • identifier set to accessibility identifier by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/70
    • fix self width, height constraint doesn't work by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/71
    • add some tests by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/72
    • add tests by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/73
    • refactoring by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/74
    • remove samples by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/75
    • printing SwiftLayout text structure from view hierarchy by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/76

    Full Changelog: https://github.com/ioskrew/SwiftLayout/compare/1.0.1...1.3.0

    Source code(tar.gz)
    Source code(zip)
  • 1.2.0(Feb 16, 2022)

    What's Changed

    • update minimum tool chain version by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/66
    • update readme for logo by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/67
    • ConstraintItem to ConstrantableItem by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/68
    • hiding all default implementation from Layout protocol by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/69
    • identifier set to accessibility identifier by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/70
    • fix self width, height constraint doesn't work by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/71
    • add some tests by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/72
    • add tests by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/73
    • refactoring by @gmlwhdtjd in https://github.com/ioskrew/SwiftLayout/pull/74

    Full Changelog: https://github.com/ioskrew/SwiftLayout/compare/1.0.1...1.2.0

    Source code(tar.gz)
    Source code(zip)
  • 1.1.1(Feb 15, 2022)

    What's Changed

    • identifier set to accessibility identifier by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/70
    • fix self width, height constraint doesn't work by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/71

    Full Changelog: https://github.com/ioskrew/SwiftLayout/compare/1.1.0...1.1.1

    Source code(tar.gz)
    Source code(zip)
  • 1.1.0(Feb 15, 2022)

    What's Changed

    • hiding all default implementation from Layout protocol by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/69

    Full Changelog: https://github.com/ioskrew/SwiftLayout/compare/1.0.4...1.1.0

    Source code(tar.gz)
    Source code(zip)
  • 1.0.4(Feb 15, 2022)

    What's Changed

    • ConstraintItem to ConstrantableItem by @oozoofrog in https://github.com/ioskrew/SwiftLayout/pull/68

    Full Changelog: https://github.com/ioskrew/SwiftLayout/compare/1.0.3...1.0.4

    Source code(tar.gz)
    Source code(zip)
  • 1.0.3(Feb 15, 2022)

  • 1.0.2(Feb 14, 2022)

  • 1.0.0(Feb 14, 2022)

Owner
iOS Swifty Krew
iOS Developer Krew Group
iOS Swifty Krew
Powerful autolayout framework, that can manage UIView(NSView), CALayer and not rendered views. Not Apple Autolayout wrapper. Provides placeholders. Linux support.

CGLayout Powerful autolayout framework, that can manage UIView(NSView), CALayer and not rendered views. Has cross-hierarchy coordinate space. Implemen

Koryttsev Denis 45 Jun 28, 2022
A Swift Autolayout DSL for iOS & OS X

SnapKit is a DSL to make Auto Layout easy on both iOS and OS X. ⚠️ To use with Swift 4.x please ensure you are using >= 4.0.0 ⚠️ ⚠️ To use with Swift

null 19.1k Jan 2, 2023
Tiny Swift DSL for Autolayout

SwiftAutoLayout SwiftAutoLayout is a tiny DSL for Autolayout intended to provide a more declarative way to express layout constraints. Here's a quick

Indragie Karunaratne 657 Sep 18, 2022
AutoLayout Micro DSL SPM from Chris Eidhof's article

EasyAutoLayout Intro EasyAutoLayout is a small framework built using the ideas presented in the article called Autolayout Micro DSL by Chris Eidhof. I

Alexandre Garrefa 0 Nov 28, 2021
UITableView based component designed to display a hierarchy of expandable/foldable comments.

SwiftyComments UITableView based component designed to display a hierarchy of expandable/foldable comments. Installation Manually Just copy the .swift

Stéphane Sercu 220 Dec 22, 2022
An awesome Swift CSS DSL library using result builders.

An awesome Swift CSS DSL library using result builders.

Binary Birds 57 Nov 21, 2022
An autolayout library for the damn fine citizens of San Diego.

Anchorman Do you think autolayout has to be hard? Nah. NSLayoutAnchor is pretty neat! But it's still a bit tedious of an API. Try writing .translatesA

Joe Fabisevich 79 May 25, 2022
Harness the power of AutoLayout NSLayoutConstraints with a simplified, chainable and expressive syntax. Supports iOS and OSX Auto Layout

Masonry Masonry is still actively maintained, we are committed to fixing bugs and merging good quality PRs from the wider community. However if you're

null 18k Jan 5, 2023
An easier and faster way to code Autolayout

EZAnchor 中文介绍 An easier way to code Autolayout Are you annoyed of coding .active = true while using Autolayout Anchors over and over again? Are you an

Alex.Liu 25 Feb 20, 2022
FrameLayoutKit is a super fast and easy to use autolayout kit

FrameLayoutKit FrameLayout is a super fast and easy to use layout library for iOS and tvOS. For Objective-C version: NKFrameLayoutKit (Deprecated, not

Nam Kennic 57 Jun 24, 2022
An extension that simplifies the work with Swift AutoLayout by writing cleaner, more natural and easy-reading code.

Installation For now you're able to clone repo in your project or download ZIP folder manually. git clone https://github.com/votehserxam/AutoLayout.gi

Max 3 Nov 8, 2022
Write concise Autolayout code

Winner of Hacking with Swift Recommended award You + Stevia = ?? ?? Write concise, readable layouts ?? Reduce your maintenance time ?? Compose your st

Fresh 3.3k Jan 6, 2023
A declarative Auto Layout DSL for Swift :iphone::triangular_ruler:

Cartography ?? ?? Using Cartography, you can set up your Auto Layout constraints in declarative code and without any stringly typing! In short, it all

Robb Böhnke 7.3k Jan 4, 2023
📱AutoLayout can be set differently for each device

DeviceLayout DeviceLayout is a Swift framework that lets you set Auto Layout constraints's differently for each device Using only IBInspector of Xcode

Cruz 171 Oct 11, 2022
An Impressive Auto Layout DSL for iOS, tvOS & OSX. & It is written in pure swift.

KVConstraintKit KVConstraintKit is a DSL to make easy & impressive Auto Layout constraints on iOS, tvOS & OSX with Swift Installation Using CocoaPods

Keshav Vishwkarma 90 Sep 1, 2022
A compact but full-featured Auto Layout DSL for Swift

Mortar allows you to create Auto Layout constraints using concise, simple code statements. Use this: view1.m_right |=| view2.m_left - 12.0 Instead of:

Jason Fieldman 83 Jan 29, 2022
The fast path to autolayout views in code

NorthLayout The fast path to autolayout views in code Talks https://speakerdeck.com/banjun/auto-layout-with-an-extended-visual-format-language at AltC

banjun 36 Jul 15, 2022
🏗 MondrianLayout - describing structured layout for AutoLayout

?? A DSL based layout builder for AutoLayout

Muukii 155 Dec 10, 2022
This "Calculator" application is a simple one screen design of calculator screen i have made this single screen design application just to practice AutoLayout concepts.

Calculator Layout This "Calculator" application is a simple one screen design of calculator screen i have made this single screen design application j

Chetan Parate 1 Oct 29, 2021