zoukankan      html  css  js  c++  java
  • 【iOS】关于使用Masonry切圆角无效

    今天在使用masnory写了一个列表,发现了一个问题。那就是在使用masonry设置view后发现,设置任意角的圆角不起作用。

    这是因为在使用了masonry之后,view的fream和bounds都是0,所以在设置圆角就不会起作用。

    解决方法:
    当设置完控件的约束,需要调用layoutIfNeeded 函数进行布局,然后所约束的控件才会按照约束条件,生成当前布局相应的frame和bounds。这样就可以利用这两个属性来进行图片圆角剪裁
      [self layoutIfNeeded];//这句代码很重要,不能忘了
      [self useBezierPathClipCornerWithType:UILayoutCornerRadiusTop WithCornerRadius:AdaptedWidth(5)];

    下面附上关于autolayout更新几个方法的区别:

    setNeedsLayout:告知页面需要更新,但是不会立刻开始更新。执行后会立刻调用layoutSubviews。
    layoutIfNeeded:告知页面布局立刻更新。所以一般都会和setNeedsLayout一起使用。如果希望立刻生成新的frame需要调用此方法,利用这点一般布局动画可以在更新布局后直接使用这个方法让动画生效。
    layoutSubviews:系统重写布局
    setNeedsUpdateConstraints:告知需要更新约束,但是不会立刻开始
    updateConstraintsIfNeeded:告知立刻更新约束
    updateConstraints:系统更新约束
  • 相关阅读:
    驱动-问题解决
    Broadcast-广播的接收
    menu-代码添加以及add方法参数意义
    ubuntu-12.04工作区内容变换所属工作区
    $.ajax(),传参要用data
    阻止浏览器默认的事件冒泡行为
    form提交跳转问题
    根据已知值,选中selec中的选项
    option click事件
    按回车键确定
  • 原文地址:https://www.cnblogs.com/weicyNo-1/p/11129356.html
Copyright © 2011-2022 走看看