使用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,295评论 4 61
  • 不知你何时喜欢上我,对我体贴关心,百般呵护,那爱甚是浓厚却又决绝!我能看出相会时你彬彬有礼,却又掩不住身上的杀伐之...
    司竹空阅读 289评论 0 0
  • 先在云盘中建一个文件夹; “功能大全”——“同步文件夹”; 选择云盘要同步的文件夹A,然后在电脑里选择文件夹B作为...
    骑着驴去旅行阅读 1,003评论 0 0
  • 1.假期不是学校教育的继续,家长要真正理解假期的意义。 假期按常理应该是孩子们离开学校,课堂,进行短暂休息、放松和...
    广州学大教育阅读 352评论 0 1