autolayout高度动态改变的一些体会

autolayout这个东西就不在此说明了,网上已经有很多大神做了很详细的讲解,自己也看了不少好文章,在这里只是想记录一下自己初步的一些认识与体会,这个东西毕竟还是很强大,如果要用到更高级的用法还得在研究。

  首页这边先描述一个动态cell,然后先进行一些必要的布局,布局完大概是这个样子

主要是关注测试label,标题和图片的布局这边只要固定边距或固定宽高就可以了。首先有没有一种情况就是cell高度固定,然后让这个测试label动态增长到一定行数,假设测试label动态增长到2行,那我们首页就要设置label的属性numLines = 2,接下来给测试label添加如下约束,这边设置好顶部,左边,右边的三边距约束,这样cell就会自动 增长到你指定的行数,现在是长这样,当然因为行数固定了,所以字数太多超多你的行数时,还是会显示不全的,但是有时候cell长一样高的话可能会用到,但是你要预估好不要让label行数过大而增长到盖住你下面的控件。

  除了这种情况还有一种也可能会经常碰到的那就是cell根据文字多少自增长,还是以这个cell为例子删掉之前的约束,重新约束这个测试label,测试label无论底部有没有控件必须必须满足到三边的约束,加一个宽度。如果底部没有控件,直接设置到底部约束。如果像这个底部有控件就设置到底部的约束,在设置好底部控件的约束。这边暂时不清楚为什么四边距约束无法使label动态增长,还得多多学习啊~~。设置的约束大概是这样子,这边的宽度如果这样固定是有问题的,而且有时需要根据屏幕改变这个宽度约束,还好我们可以像拉控件一样让这个宽度约束成为一个属性,然后在这个自定义cell里面添加这个方法

当然宽度约束是可以改到适合的。设置完约束后,还需要在控制器的数据源方法中添加类似的如下代码

最后这边通过切换可以看到动态改变cell的高度,这次笔记就这样了,虽然页面看起来有点丑~~

时间: 2024-08-24 21:55:42

autolayout高度动态改变的一些体会的相关文章

使用Autolayout实现UITableView的Cell动态布局和高度动态改变

本文翻译自:stackoverflow 有人在stackoverflow上问了一个问题: 如何在UITableViewCell中使用Autolayout来实现Cell的内容和子视图自动计算行高,并且能够保持平滑滚动的? 这个问题得到了300+的支持和450+的收藏,答案得到了730+的支持,很详细的说明了如何在iOS7和iOS8上实现UITableView的动态行高功能,并且这个答案对实现UICollectionView的动态行高也具有参考意义.所以在这里将这个答案翻译了一下,希望对大家有所帮助

iOS 根据键盘的高度动态改变UIView的高度

在我们使用键盘时常常出现键盘挡着视图这种情况,下面我给大家介绍一种方法可以根据键盘的高度来动态改变视图的度使其可以始终在键盘的上边 在这里视图我用TextView UIKeyboardWillShowNotification//键盘弹出 UIKeyboardWillHideNotification//键盘缩回 //用通知监听键盘的弹出 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboar

iOS8下动态改变Cell高度以及iOS8的动态类型理解

在iOS8中,苹果给出了一个激动人心的特性,UITableView 的 Self Sizing Cells.对于开发者来说,这是一个很值得一试的特性,在iOS8以前,如果需要在UITableViewCell中展示动态的内容,必须每次计算内容所占高度,然后赋值给UITableView的height. iOS8中如何使用此特性呢?基本有三步: 针对自定义Cell进行Layout Constraints设置 设置estimatedRowHeight 这是UITableView的RowHeight为UI

js动态改变iframe的高度

js动态改变iframe的高度的写法 〈iframe id="docDetail" width="100%"  height="200" frameborder="0" src="a.htm"〉 〈/iframe〉 而a.html不是固定大小的,这个时候嵌套的iframe就会出现滚动条. 通过js获取iframe的高度,然后动态的改变,这样就不会出现滚动条. 方式一:在jsp的body里增加onload方法

【iOS知识学习】_iOS动态改变TableView Cell高度

在做tableView的时候,我们有时候需要根据cell的高度动态来调整,最近在网上看到一段代码不错,跟大家Share一下. 在 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 类中获取cell的高度: CGSize boundSize = CGSizeMake(216, CGFLOAT_MAX); cell.textLabel.text

转--动态改变UITableView中的Cell高度

往往在开发iPhone的应用过程中用得最多的应该算是UITableVIew了,凭着IOS给UITableView赋予了这种灵活的框架结构,让它不管在显示列表方面还是在排版方面都有着一定的优势.虽然UITableView功能强大,但是对于一些复杂的应用需求在开发的过程中会出现一些问题,如动态改变UITableView显示的Cell高度就是其中之一 其实想要改变UITableView的Cell高度并不难,UITableView带有一个rowHeight属性,使用他就可以改变高度了.但是这样的改变是把

如何自动在html页面加载时动态改变div等元素的高度和宽度

这里需要用到jquery + css.原理是在页面加载时用javascript去动态改变一个class的高度和宽度.这样结合javascript能动态获取浏览器/页面的高度和宽度,从而使得div能动态的跟随浏览页面的大小变化而变化并且不影响高宽比.下面的代码创建一个手机页面,每一行三个图片分占33%,每个图片div的高和宽会随着浏览器的大小变化而自适应. <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"

Android 动态改变高度以及计算长度的EditText

前段时间项目需求,需要做一个有限制长度的输入框并动态显示剩余文字,同时也要动态改变EditText的高度来增加用户体验.现整理出来与大家分享. 先来看看效果图 看了效果就分享一下布局 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_wid

动态改变cell的高度&amp;beginUpdates和endUpdates-实现UITableView的动画块

1.利用reloadRowsAtIndexPaths:withRowAnimation:来动态改变cell的高度 UITableView的- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation 这一方法会重新加载所指定indexPaths中的UITableViewCell实例,因为重新加载cell所以会请求这个UITableView实例的dat