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:系统更新约束
  • 相关阅读:
    asp.net Post Get提交数据转Model实例
    ETL构建数据仓库五步法
    什么是数据仓库-数据仓库的基本概念
    简单的说下什么是数据仓库
    简单理解Socket
    Net中的反射使用入门
    JS---BOM
    jQuery Ajax 全解析
    Ajax与JSON的一些总结
    ASP.NET中验证控件的使用
  • 原文地址:https://www.cnblogs.com/weicyNo-1/p/11129356.html
Copyright © 2011-2022 走看看