美文网首页约束
使用pureLayout布局那些事

使用pureLayout布局那些事

作者: 焚琴煮鹤de我 | 来源:发表于2015-08-09 23:31 被阅读4562次

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];
                   }];
}

相关文章

网友评论

  • 75281188d37c:该怎么更新约束呢
  • 2b1ed5b649ed:大神,请问PureLayout怎么更新约束?

    初始化:pTopLabelTopConstraint = [self.topLabel autoPinEdgeToSuperviewEdge:ALEdgeTop];

    - (void)setInset:(CGFloat)inset
    {
    _inset = inset;

    pTopLabelTopConstraint = [self.topLabel autoPinEdgeToSuperviewEdge:ALEdgeTop withInset:inset];
    }

    怎么修改约束没有效果了
    fa240d0dafd8:更新完约束,需要立即看到效果的要调用 [self.tableView layoutIfNeeded];
  • 91a72588c8f3:博主有没有在uitablview上使用过purelayout,我遇到一些问题。比如uitableviewheaderview的设置,有没有小demo参考一下。

本文标题:使用pureLayout布局那些事

本文链接:https://www.haomeiwen.com/subject/dqkiqttx.html