2016-05-04 78 views
1

我在YouTube,導遊,常見問題等等中觀看過很多視頻,所以我可以使用自動佈局創建一個視圖,但是現在,我有一個項目,動態加載元素以及許多不同的視圖,如下所示:
(Sketch 3屏幕)Autolayout在Xcode 7.3(swift 2)

有沒有任何框架或方法可以讓我的工作更輕鬆?

Sketch 3 screen

+0

自動佈局和大小班看起來很困難,但如果你對得到的把握,這將是最開心的去努力。花一些時間學習它,享受編碼。 –

回答

3

有一個偉大的文章,以瞭解其更深層次的: https://www.objc.io/issues/3-views/advanced-auto-layout-toolbox/

反正有一組自動佈局工具,可以很容易地天天使用它:

砌體(https://github.com/SnapKit/Masonry

//these two constraints are exactly the same 
make.left.greaterThanOrEqualTo(label); 
make.left.greaterThanOrEqualTo(label.mas_left); 


//creates view.left = view.superview.left + 10 
make.left.lessThanOrEqualTo(@10) 

EasyPeasy(https://github.com/nakiostudio/EasyPeasy

// Apply width = 0 and height = 0 constraints 
     view <- Size() 

    // Apply width = referenceView.width and height = referenceView.height constraints 
     view <- Size().like(referenceView) 

    // Apply width = 100 and height = 100 constraints 
     view <- Size(100) 

    // Apply width = 200 and height = 100 constraints 
     view <- Size(CGSize(width: 200, height: 100) 


    // Apply left = 0, right = 0, top = 0 and bottom = 0 constraints to its superview 
     view <- Edges() 

    // Apply left = 10, right = 10, top = 10 and bottom = 10 constraints to its superview 
     view <- Edges(10) 

    // Apply left = 10, right = 10, top = 5 and bottom = 5 constraints to its superview 
     view <- Edges(UIEdgeInsets(top: 5, left: 10, bottom: 5, right: 10)) 

PureLayout(https://github.com/PureLayout/PureLayout

//returns the constraints it creates so you have full control: 
let constraint = skinnyView.autoMatchDimension(.Height, toDimension: .Width, ofView: tallView) 

// 2 constraints created & activated in one line! 
logoImageView.autoCenterInSuperview() 

// 4 constraints created & activated in one line! 
textContentView.autoPinEdgesToSuperviewEdgesWithInsets(UIEdgeInsets(top: 20.0, left: 5.0, bottom: 10.0, right: 5.0))