首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS AutoLayout with masonry,无法将子项的底部设置为等于父项的底部

iOS AutoLayout是一种用于在iOS应用程序中创建自适应界面的技术。它允许开发人员使用约束来定义视图之间的关系,以便在不同的设备和屏幕尺寸上正确布局和调整界面。

Masonry是一个流行的第三方库,用于简化AutoLayout的使用。它提供了一种更简洁、易读和易用的方式来创建和管理约束。

对于无法将子项的底部设置为等于父项的底部的问题,可以通过以下步骤解决:

  1. 确保父视图和子视图之间已经建立了正确的约束关系。子视图的底部约束应该与父视图的底部约束相关联。
  2. 检查是否存在其他约束或布局属性,可能会影响子视图的底部位置。例如,父视图的高度约束或其他与子视图底部相关的约束。
  3. 确保父视图和子视图的布局属性设置正确。父视图的translatesAutoresizingMaskIntoConstraints属性应该设置为false,以确保AutoLayout生效。
  4. 如果使用了Masonry库,可以使用其提供的链式语法来创建和管理约束。例如,可以使用mas_makeConstraints方法来设置子视图的底部约束,将其与父视图的底部对齐。

以下是一个示例代码片段,展示了如何使用Masonry设置子视图的底部约束:

代码语言:txt
复制
// 导入Masonry库
#import <Masonry/Masonry.h>

// 创建父视图和子视图
UIView *superview = self.view;
UIView *subview = [[UIView alloc] init];
[subview setBackgroundColor:[UIColor redColor]];
[superview addSubview:subview];

// 关闭父视图的translatesAutoresizingMaskIntoConstraints属性
[superview setTranslatesAutoresizingMaskIntoConstraints:NO];

// 使用Masonry设置子视图的底部约束
[subview mas_makeConstraints:^(MASConstraintMaker *make) {
    make.left.equalTo(superview.mas_left);
    make.right.equalTo(superview.mas_right);
    make.bottom.equalTo(superview.mas_bottom);
    make.height.equalTo(@100);
}];

在上述示例中,我们创建了一个红色的子视图,并使用Masonry设置了其底部约束,使其与父视图的底部对齐。

推荐的腾讯云相关产品:腾讯云移动开发平台(https://cloud.tencent.com/product/mpp)

腾讯云移动开发平台提供了一系列工具和服务,帮助开发人员构建高质量的移动应用。它包括移动应用开发框架、云存储、推送服务、移动分析和测试工具等,可以提高开发效率并提供稳定可靠的基础设施支持。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Autolayout

Autolayout Autolayout是一种“自动布局”技术,专门用来布局UI界面的 AutolayoutiOS6开始引入,由于Xcode4不给力,当时并没有得到很大推广自iOS7(Xcode5...参照 约束 与 Autoresizing 区别 在Autolayout之前,有Autoresizing可以作屏幕适配,但局限性较大,有些任务根本无法完成 相比之下,Autolayout功能比Autoresizing...; - (void)addConstraints:(NSArray *)constraints; 代码实现Autolayout注意点 要先禁止autoresizing功能,设置view下面属性NO...UILabel实现包裹内容 设置宽度约束 <= 固定值 设置位置约束 不用去设置高度约束 基于Autolayout动画 在修改了约束之后,只要执行下面代码,就能做动画效果 [UIView animateWithDuration...左边间距30; make.bottom.equalTo(self.view.mas_bottom).offset(-30);//和view底部间距30; make.right.equalTo

91060

iOS开源界面布局库终于破3000star

后来在iOS6.0以后,苹果公司推出了一种新界面布局方案AutoLayout,这种方法主旨是通过相对约束设置进行布局来减少代码中硬编码编写,从而达到多设备适配以及简化布局能力。...; //当调整自己大小时是伸缩顶部还是底部三个位置,默认是底部 @property(nonatomic,assign) LineViewFlexDir flexDir; //如果线性布局视图是...,默认是YES.如果设置NO的话则adjustScrollViewContentSize就没有实际意思了。...有人也许会觉得Masonry或者AutoLayout挺好,而且使用受众也广也流行,为什么我还要去学习或者掌握一个新库。其实这也正常,人总是有懒惰天性,就如我不想学AutoLayout是一样。...同样布局库也有一些缺点: 上手比较慢,因为很多思想和AutoLayout不一致,而更多是借鉴了android以及HTML5中一些布局思想以及布局属性设置,所以如果你一直在开发iOS的话可能有些方法和习惯会和以前有非常大迥异

1.8K40

深入剖析Auto Layout,分析iOS各版本新增特性

先前写到一篇Masonry心得文章里已经提到了很多AutoLayout相关知识,这篇我会更加详细对其知识要点进行分析和整理。...这时可以通过设置Hugging priority让这些控件不要大于某个设定值,默认优先级250。...设置Content Compression Resistance就是让控件不要小于某个设定值,默认优先级750。加这些值可以当作是加了个额外约束值来约束宽。...案例二 多个有相互约束关系视图removeFromSuperView后更新布局在低配机器上出现崩问题。这个原因主要是根据不含视图约束不合法这个原则来,同时会抛出野指针错误。.../robb/Cartography Masonry 可以参看我上篇文章《AutoLayout框架Masonry使用心得》:http://www.starming.com/index.php?

1.2K10

iOS开发-屏幕适配三种技术(Autoresizing,AutoLayout,SizeClass)

Paste_Image.png 1、横竖屏幕相对简单 2、让子控件跟随控件尺寸发生相应变化 3*、处理父子关系---在storyboard中实现无法实现兄弟控件布局 ?...Paste_Image.png 2、AutoLayout(自动布局) 用来布局UI界面的 iOS6.0(xcode4.0)就出现了(iPhone5) iOS7.0(xcode5.0)流行Autolayout...但是如果改变文字后,让Lable宽度包裹 ? Paste_Image.png Less than or equal :让它宽度小于等于设置宽度,也就是根据lable内容自动拉伸 ?...第二种思路: 1、删除UILable距离控件底部约束(这条线决定控件高度拉伸) ?...Paste_Image.png 3、反转,让控件距离内部控件 ? Paste_Image.png 4、设置黄色View底部=UILable底部+20 ?

5.2K10

浅汇-iOS UI布局

而且同层级试图  无法达到重合布局,两个试图重合的话只有是  /子视图关系。...就相当于以上那复杂代码就要最少写四次。 所以对IOSAutoLayout进行封装就显得很有必要了。...,需要使用一下方法来自动布局,并且这个时候不可以再以试图标准来设置其内部子视图,这是一种【从里到外】布局思路,cell自适应高度也是这种思路;平时我们思路都是一种【从外到里】思路,先确定外面的再使其自动布局里面的...实现了UIScrollView可滚动高度根据内部子视图内容高度动态设置 /** 设置scrollview内容自适应,第一个参数作为底部子视图,第二个参数到sc底部间距。...` ---- 小结  iOS关于UI布局知识还有很多,至此我列举了一些需要注意地方,使用时候是先初始化`new`比较方便,先加载到视图上后设置相关属性,然后再进行布局方面的设置,若后加到试图上

2.1K20

有了Auto Layout,为什么你还是害怕写UITabelView自适应布局?

以网易新闻客户端例,可能数据包括文字新闻,图片新闻,图集,推广,视频等.每一种数据,又根据来源或点击量等细分出许多不同状态.基本上每种数据类型,都至少需要一种单独Cell去呈现,每一个Cell...布局,都要单独去写.所以说,数据类型直接决定页面本身复杂度....Masonry — 使用纯代码进行iOS应用autolayout自适应布局 2.使用 UITableView-FDTemplateLayoutCell 根据单元格内容约束自适应单元格高度 ?...坦白说,我原来也是: 虽然cell用着AutoLayout,但是计算cell高度时,也是看着设计图返回一个适合值--想想都虐心.前天,一个热心开发者在我博客留言说: 他用 Masonry 进行Cell...:关于如何让左侧图片底部总是不被遮盖.

85160

iPhoneX 适配实践

 4、不要刻意遮挡和和引导屏幕关键位置,比如用纯黑色navigationbar和toolbar遮住上下区域,或者用闪亮背景强调底部指示器区域。...如果失效,检查下是否translucent设置NO,并且Navigationbar必须添加到ViewController一级subView。...解决方案:系统UIToolBar会自动扩展背景颜色到底部,可以让Custombar继承UIToolBar,或者直接放置一个ToolBar底部当做背景也是可以。注意高度不能超过48,否则失效。...3、TableView布局 如果底部区域不存在可交互固定组件,那么tableView需要延伸到屏幕底部。...七、开源库Masonry更新SafeArea支持 想必有不少开发受够了苹果Autolayout繁琐API调用,Mansonry出现完美解决了这一大痛点。

3.6K41

android

系统AutoLayout支持操作,Masonry都支持,相比系统API功能来说,Masonry是有过之而无不及。...Masonry是同时支持Mac和iOS两个平台,在这两个平台上都可以使用Masonry进行自动布局。...在项目中设置AutoLayout约束,起到对视图布局标记作用。设置好约束之后,程序运行过程中创建视图时,会根据设置约束计算frame,并渲染到视图上。...左边可以看到16修改参数,最上面是整体修改,你也可以根据自己意愿单独修改某项,鼠标放到选项上面,右边预览图会显示相应位置。"...然后按照要求自己写了下面这段代码)   两个视图相对于视图垂直居中,并且两个视图以及视图之间边距均为10,高度150

71020

IOS开发系列——Masonry手写Autolayout专题【整理,部分原创】

Masonry手写Autolayout专题 Masonry常规开发指导整理自此篇文档(可别说我转载不注明出处哦,^_^),后面加入了笔者在实际开发使用过程中遇到过一些问题,希望对你有所帮助。...Masonry介绍与使用实践:快速上手Autolayout http://www.cocoachina.com/ios/20141219/10702.html 1 Masonry开发技巧 1.1...autolayout添加函数 所需约束添加到block中行了 [sv mas_makeConstraints:^(MASConstraintMaker *make) { //sv居中(很容易理解吧...make.center.equalTo(ws.view); //size设置成(300,300) make.size.mas_equalTo(CGSizeMake(300...Masonry 在TableCell中增加子控件时,无法正常使用Masonry来进行布局,可能是Cell重用引起

72910

MyLayout&TangramKit 重大升级!

假设有如下布局: 布局界面 我们希望容器视图S尺寸是自适应,那么就需要设置S视图右边边界等于子视图B右边边界,同时需要设置S视图底部边界等于子视图C底部边界。...//本文对AutoLayout进行约束设置都是用iOS9以后所提供进行约束设置简易方法。...在设置约束依赖时容器视图上下左右分别依赖UIScrollView视图上下左右边界,如果需要上下滚动则将容器视图中底部子视图底部边界依赖容器视图底部边界。...如果不需要上下滚动则不要这样设置,而是改为容器视图高度等于滚动视图高度。...要实现UIScrollView滚动时,只需要在一个滚动视图内添加一个布局视图,然后所有其他子视图都添加到这个布局视图中去,这个和上面的AutoLayout处理方式是一样,最后布局视图尺寸自适应属性设置

2K20

iOS开发针对对MasonryFPS优化讨论

今天博客内容就系统讨论一下Masonry对FSP影响,以及如何更好使用Masonry。如果你对iOS开发足够熟悉的话,那么对Masonry框架应该不陌生。...之前写过一篇文章是专门来介绍Masonry框架,并且对该框架源码进行了相关解析,详细内容请移步于《iOS开发之Masonry框架源码解析》。...而这个类就负责来处理这些Cell所共用逻辑。下方这个XBaseTableViewCell就是上述显示所有Cell基类。其中声明并初始化了Cell上所有控件。并且提供了相关设置方法。...当然这一过程不是简单设置时候更新一下Frame就可以,因为在Cell设置时候去更新Frame是没用,因为更新完Frame后,在渲染显示时候,还是会按照AutoLayout布局来显示...我们需要做Frame布局放到Autolayout布局之后,此处我们要做就是更新Frame相关代码放到下一个Runloop中来执行。更新Frame代码如下: ?

94160

IOS开发基础系列】Autolayout自动布局专题

,这两个视图间距必须大于或等于0并且距离底部视图为padding。...--距离视图左侧距离0(距离0的话也可省略)同时v2水平方向宽度和v1设置成相同 [self.view addConstraints: [NSLayoutConstraint constraintsWithVisualFormat...--距离视图上侧距离0(距离0的话也可省略)同时v2垂直方向高度和v1设置成相同  [self.viewaddConstraints:[NSLayoutConstraint constraintsWithVisualFormat...在Storyboard界面配置自动布局要点:     1、对于一个视图内同级别的子视图,要配就全部都配置成自动布局;     2、对于每个视图,无法上下左右四个方向上设置,一定要设置全;     3、.../article/details/41844071 使用了Autolayout和约束后,无法用代码修改View位置,怎么处理?

27940

iOS界面布局之四——使用第三方库Masonry进行autolayout布局

iOS界面布局之四——使用第三方库Masonry进行autolayout布局 一、引言         在前面博客,我们讨论了使用iOS原生框架代码来进行autolayout布局。...并且有些时候,故事版并不能解决所有问题,某些控件必须我们手写,这样的话,我们就不得不进行代码autolayout布局,幸运是,Masonry可以帮助我们轻松愉快完成这一任务。...2、3个方法让你玩转Masonry约束操作         Masonry在UIView类别中,有3个全局操作约束方法,通过他们我们可以自由进行autolayout设置。...,在block中进行约束条件设置,例如我们创建一个label,将其尺寸设置50*50,放在屏幕中间,使用如下代码: 注意:在添加约束前,必须将视图添加到其父视图上。...,我们不仅可以约束值设置绝对相等关系,也可以设置一些值域关系,在Masonry中,有如下三种: //绝对相等 - (MASConstraint * (^)(id attr))equalTo; /

1.8K20

iOS布局之AutoresizingMask和AutoLayout

关于iOS布局主要有两种方式,分别是AutoResizing和AutoLayout。其中AutoResizing作为一种旧布局方式,在AutoLayout被推广之后已经很少被使用。...一.AutoResizing 我们在使用AutoResizing进行布局时候,其主要思想就是设置子视图跟随视图frame变化而变化。具体情况,我们可以设置左跟随,右跟随等等。...从而实现了视图自动布局。而当我们确定选择使用AutoLayout添加自己约束时候,我们必须设置此属性NO,XIB中这个属性默认是NO。...在实际使用过程中,我还需要注意两点: 1.当我们设置这个属性YES时候,view布局结果由AutoResizingMask,frame,center这些因素共同决定,如果再在其上添加AutoLayout...2.我们设置该属性NO,AutoResizing并不会直接失效,只有当我们视图设置了constraint之后,AutoResizing才会失效。

1.8K60

如何把设计图自动转换为iOS代码? 在线等,挺急!

目前探索: 基于 masonry 视图模块化 masonry,是一个基于纯代码AutoLayout库.初次涉及时,只是感觉它很方便,既有Xib易读性,又有纯代码灵活性.试用一段时间之后,突然想到...: 或许借助masonry,建立一个纯代码不依赖XibAutoLayout视图组件机制....目前能得到效果 视图基于 AutoLayout; 视图自动适配不同屏幕尺寸; 视图完全独立于数据与业务逻辑; 视图严肃仅与视图有位置关系; 可以视图模块元素与模块同名属性自动关联; 仅需知道视图宽高...核心理论基础: AutoLayout中,如何唯一确定元素在不同尺寸屏幕上位置? 既定方案,必须基于AutoLayout,至于AutoLayout与Frame区别于优势,不做赘述....< 同一设计图中,子视图底部边距值(bottom). @interface YFViewComponent : UIView /** * 子视图配置信息.

1.3K60
领券