美文网首页iOS开发知识小集iOS开发-自动布局
Masnory布局后获取不到view.bounds

Masnory布局后获取不到view.bounds

作者: 耽于幽夜 | 来源:发表于2018-06-26 10:23 被阅读12次

Masnory是一个轻量级的页面布局的三方,用来替代系统的AutoLayout。这篇文章用来记录本人在实际开发中遇到的问题

为了页面的美观,部分的视图会有一些裁剪的操作;为了缓解内存压力,本人利用UIBezierPath和CAShapeLayer封装了一个切圆角的方法,在初始化UIBezierPath时如图有个bounds的参数

1

这个bounds就是我们需要裁剪的范围,也就是我们需要裁剪的view的view.bounds。可是当我们使用Masnory进行页面布局时,会发现裁剪的效果并不是我们所期望的那样。这是因为布局后,并没有立即走layoutSubviews方法,页面布局并没有刷新,view的bounds值没有改变。

这是因为Masnory内部其实自己调用了setNeedsLayout,只是将页面标记为重新布局,页面布局不会立即刷新,会在下一runloop结束之前刷新;即会存在延迟。

解决这个问题的方法很简单,只要对setNeedsLayout和layoutIfNeeded有所了解的朋友就会知道,只要在Masnory布局后使用再调用一下layoutIfNeeded方法,页面就会立即刷新,bounds的值也会随之成为我们所期望的值,裁剪效果亦然。

相关文章

  • Masnory布局后获取不到view.bounds

    Masnory是一个轻量级的页面布局的三方,用来替代系统的AutoLayout。这篇文章用来记录本人在实际开发中遇...

  • scrollview用masnory布局

    viewDidLayoutSubviews viewdidload里面 拿到html标签处理 , 计算webview高度

  • iOS Masonry实现九宫格布局

    直接复制下面代码看效果一、常规布局方式 二、另外一种布局方式 view创建代码不变 masnory实现代码如下 /...

  • ios demo别人整理的

    常用的demo,包括获取验证码、AVPlayer、AFNetworking、Masnory、高仿微信、高仿网易、K...

  • iOS demo汇集

    常用的demo,包括获取验证码、AVPlayer、AFNetworking、Masnory、高仿微信、高仿网易、K...

  • 好玩的demo

    总结了一些常用的demo,包括获取验证码、AVPlayer、AFNetworking、Masnory、高仿微信、高...

  • iOS 被滥用的weak

    看其他人的代码,发现weak出现在了几乎所有有block的地方,比如 GCD 比如,使用Masnory布局的地方,...

  • masonry使用、介绍和获取自动布局后的高度

    获取自动布局后的高度 调用self.tagView父视图的 layoutIfNeeded 后可以获取高度layou...

  • iOS布局与Masnory使用实践

    前言 UI布局对于iOS开发者来说并不陌生,在iOS6之前,大家都是通过UI控件的Frame属性和Autoresi...

  • 布局

    1.获取nib布局后的frame [viewsetNeedsLayout]; [view layoutIfNeed...

网友评论

    本文标题:Masnory布局后获取不到view.bounds

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