iOS开发之UI处理-动态布局
来源:互联网 发布:气弹枪 淘宝 暗语 编辑:程序博客网 时间:2024/06/10 14:42
不管是做iOS还是Android的开发,我想UI这块都是个大麻烦,任何客户端编程都是如此,我们要做的就是尽量减少我们工作的复杂度,这样才能更轻松的工作。
在iOS开发中Xcode虽然自带了强大的IB(Interface Builder)用来开发UI,但这只是静态的,遇到复杂的界面还是需要用代码来动态的布局。
1. 例如常常会有动态内容高度和宽度的计算。
2. 几个视图的排版。
3.还有的视图是根据内容情况进行显示的。
比如一个商家页面有活动的时候,会显示活动,没有活动的时候这个视图是隐藏的,这样布局起来就会非常麻烦,在这里我们都可以很简单的解决,只需要几行代码而已。
例如下面这种情况:
我们经常要根据内容去动态计算控件的高度,比如一个UILabel控件,常常要显示多行内容,并且计算出总高度,如果每个UILabel要多行显示,都要写这么一段代码是非常痛苦的,看代码如下:
我想大家一定写过很多这样的代码吧,那么我可以告诉你,以后你只需要写一行代码即可:
当然这里只是把上面那段代码进行了封装而已,没什么大不了的,当然以后还有很多很多的这样的封装:
你还在使用CGRect frame = ...,然后去设置坐标位置,宽度和高度吗?
如果有了这个呢,left, top,bottom,right, width, height的封装,是不是布局起来更方便了呢?
这里self 是一个UIView,当添加了label和photoView之后,调用[self autoHeight]就可以自动计算并设置self的高度。
下面是上面几个方法的源码:
头文件:
实现类文件:
在UIView作为许多子控件的容器的时候,首先我们需要动态的计算出UIView下的所有子控件的高度,并布局排列好,然后我们还要把作为容器的UIView的高度调整到刚好包裹着所有子控件,不会过矮,也不会过高,这个在开发中也是个十分麻烦的事情,这里我们要怎么做呢?
看上图除了要将UILabel自适应高度(上一篇文章已讲)以外,还要将在UILabel外的那个白色的框,即一个带白色背景色的UIView的高度也进行
自适应,如果这要写代码去做的画,也比较麻烦。
看看下面的代码如何解决:
这里显示活动内容的UILabel名字叫_huodongLabel,显示推荐内容的UILabel叫_tuijianContentLabel
显示活动的UIView叫_secondView, 显示推荐的UIView叫_thridView,
先计算子控件的高度,然后再计算付控件的高度,这里就能达到整个UIView自适应高度了,仅仅只需2行代码。
代码贴出来:
- iOS开发之UI处理-动态布局
- Android UI详解之动态布局
- ios 开发代码布局UI(1)
- ios开发-UI-自定义Tabbar 图书布局
- Ios开发之UI控件
- IOS开发之UI介绍
- iOS开发之UI手势
- ios开发之UI基础
- iOS开发之UI控件——UIPickerView实现点菜系统界面布局
- ios开发之UI基础--应用管理xib-九宫格布局
- ios开发UI系列之使用AutoLayout的几个经典的布局技巧
- [React Native混合开发]React Native for iOS之CSS和UI布局
- (0010) iOS 开发之UI布局兼容 4s/5/6/7 屏幕解决方案
- Android-UI开发之常用布局
- iOS开发之自动布局
- iOS开发masonry动态布局cell高度
- iOS开发之iOS界面UI
- 【IOS】基本UI布局
- 在C语言中调用lua实现的回调函数
- memcpy()函数用法
- 英语学习--chap2 名词短语 冠词
- Bootstrap3.0学习第二轮:栅格系统原理
- java jdbc操作oracle数据库的两种方式
- iOS开发之UI处理-动态布局
- 疑难杂症!!!
- 九度OJ 1119 Integer Inquiry
- 在 Debian 下安装 Apache,MySQL,PHP
- pcDuino创造家指南(一)
- nc开发内容
- 为未来企业而定义
- C# DataTable 和List之间相互转换的方法
- Newtonsoft.Json部分操作系统不支持解决