获取真实frame
在不用Masonry时,frame在创建UIView时就已经确定,例如:
CGRect frame = CGRectMake(0, 0, 375, 200);
UIView *view = [[UIView alloc] initWithFrame:frame];
或者
UIView *view = [[UIView alloc] init];
view.frame = CGRectMake(0, 0, 375, 200);
但是使用Masonry时,坐标是根据约束计算得到的。在init方法里,view的frame是(0, 0, 0, 0),这不是view的真实frame。有时候会遇到问题,比如希望给view加一个底部的border
[self addOneSidedBorderWithFrame:CGRectMake(0, self.frame.size.height-height, self.frame.size.width, height) andColor:color]
所以,需要能够获取到view的真实frame,正确的时机应该是在layoutSubviews方法里,因为这时候应该开始layout subviews,Masonry已经计算出了真实的frame
-(void) layoutSubviews
{
[super layoutSubviews];
[uploadArea addBottomBorderWithHeight:1.f andColor:[ColorUtility basicGrayLineColor]];
[myUploadArea addBottomBorderWithHeight:1.f andColor:[ColorUtility basicGrayLineColor]];
}
实现动画效果
用以下的代码可以配合Masonry实现动画
[switchBar mas_remakeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(@0)
make.bottom.equalTo(@0)
make.width.equalTo(toupiaoBtn)
make.height.equalTo(@2)
}]
[UIView animateWithDuration:0.3 delay:0.0 options:UIViewAnimationOptionCurveLinear animations:^{
[switchBar layoutIfNeeded]
} completion:nil]
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
Masonry 瀑布流(Masonry)布局
Masonry的使用,仅供参考
Masonry库文件
用Masonry做约束时,会存在对相应的空间做等距离约束的问题,demo可以做竖直或水平方向的,两个,三个,多个效果. 希望帮助不了解的开发者
Masonry与FDTemplateLayoutCell结合的iOS AutoLayout的一次实践
Masonry布局插件
前端项目-masonry,一个布流布局工具库。
masonry 简单示例 适合初学者了解内容
masonry瀑布流布局需要使用的插件 里面有缩略版和完整版 这个本身在官网有 不过一下载就一堆东西 都不需要的 直接抽这个出来 方便大家下载使用 这里就不扣分啦 方便而已 方便而已
masonry瀑布流布局滑动到底部加载更多demo
使用Masonry完成cell高度自适应,实现简易聊天界面布局
Masonry的使用详细教程
xcode6.4+iOS8 根据masonry 自己小小修改的 tableViewCell 自适应高度的优化
没事跟着Masonry源代码敲了一遍。收货不小。
Jquery网站瀑布流插件masonry是一款jquery.masonry插件。
iOS开发中使用Masonry 方式进行适配的Demo, 很好用的
jquery.masonry 瀑布流插件 有详细的dome文档。用法简单,很好的jquery插件
Masonry介绍与使用实践(快速上手Autolayout)
基于jquery.masonry插件开发的瀑布流ajax动态加载数据功能(使用的是aspx的页面)
IOS 屏幕适配的强大第三方类库