使用pureLayout布局那些事

1.masonry這個布局是比較知名的,使用block的鏈式編程來布局確實酷炫,但是實際使用過程中確實遇到不少問題
2.于是在github上搜索到另外一個較出名的布局,便有了這段pureLayout的嘗試
3.布局的問題通常出在給scrollView上的控件或者tableView上的控件設限制上,以及在iOS8正常運行,在iOS7上卻頻頻崩潰,自動布局還是得自己多做嘗試;

Paste_Image.png
Paste_Image.png

相對于masonry來說,我覺得pureLayout的可讀性更強(個人觀點)
....

許久沒來更新了,接著寫完這pureLayout的布局。
便捷的讓一個子視圖布局充滿父視圖:

Paste_Image.png

然后設置其中不同控件相對布局的方法:

Paste_Image.png

像這樣居中,設置大小,sizetofit,邊界等。
pureLayout的好處在于,這些設定限制的語句都是有返回值的,我們可以很方便的拿到我們想要改動的那個約束,然后在特定的事件下去修改約束。

看到有人問到tableviewHeaderView的問題。
分兩種:第一種是代理方法返回的tableviewHeader:
這種是可以使用pureLayou布局并在header中的layoutsubViews去布局子空間的。

Paste_Image.png
Paste_Image.png

從代理方法中返回就可以了。

第二種是tableView的tableViewHeaderView,因為是直接給與賦值的,我的做法是自定義布局好的UIView之后,會在這個自定義的view的willMoveToSuperView中去設置frame。

Paste_Image.png
//我們像這樣使用pureLayout布局UI:
[tableView autoPinEdgesToSuperviewEdgesWithInsets:UIEdgeInsetsMake(0, 0, 0, 0) excludingEdge:ALEdgeBottom];
[tableView autoPinEdgeToSuperviewEdge:ALEdgeBottom withInset:81];
//當想要改動其中的約束的時候,在布局的時候就拿到這條約束
self.tableViewBottomConstraint = [tableView autoPinEdgeToSuperviewEdge:ALEdgeBottom withInset:81];
//然后在需要改動的地方改動這個限制就好了,然后加一個自帶的動畫效果就好了:
- (void)keyboardWillHide:(NSNotification*)aNotification {
  self.tableViewBottomConstraint.constant = -81;
  [UIView animateWithDuration:0.25
                   animations:^{
                     [self.tableView layoutIfNeeded];
                   }];
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,198評論 4 61
  • 不知你何時喜歡上我,對我體貼關心,百般呵護,那愛甚是濃厚卻又決絕!我能看出相會時你彬彬有禮,卻又掩不住身上的殺伐之...
    司竹空閱讀 282評論 0 0
  • 先在云盤中建一個文件夾; “功能大全”——“同步文件夾”; 選擇云盤要同步的文件夾A,然后在電腦里選擇文件夾B作為...
    騎著驢去旅行閱讀 975評論 0 0
  • 1.假期不是學校教育的繼續,家長要真正理解假期的意義。 假期按常理應該是孩子們離開學校,課堂,進行短暫休息、放松和...
    廣州學大教育閱讀 348評論 0 1