上篇博客介绍了如何使用UITableView实现类似QQ的好友界面布局.这篇讲述如何利用自定义单元格来实现聊天界面的布局. 借助单元格实现聊天布局难度不大,主要要解决的问题有两个: 1.自己和其他人说话头像和气泡图像在不同的位置. 找了些类似的例子,有根据不同情况设置不同的自定义类的.这里使用根据说话人的属性来设置不同的位置,在一个单一的单元格类中. 2.像微博等根据说话的内容长短对说话图片进行拉伸,以及单元格自适应高度. 实现步骤: 搭建界面 数据属性字典 读取数据 - (void)loadD…
在之前的有篇文章讲述了利用HeaderView来写类似QQ好友列表的表视图. 这里写的天猫抽屉其实也可以用该方法实现,具体到细节每个人也有所不同.这里采用的是点击cell对cell进行运动处理以展开“抽屉”. 最后完成的效果大概是这个样子. 主要的环节: 点击将可视的Cell动画弹开. 其他的Cell覆盖一层半透明视图,将视线焦点集中在弹出来的商品细分类别中. 再次点击选中的或其他Cell,动画恢复到点击之前所在的位置. 商品细分类别属于之前写过的九宫格实现.这里就不贴代码了.之前的文章:点击打…
内置刷新 内置刷新是苹果IOS6以后才推出的一个API,主要是针对TableViewController增加了一个属性,refreshControl,所以如果想用这个内置下拉刷新的话,最好给你的TableView指定一个专门的视图控制器了. 使用的话,我们需要给refreshControl指定一个UIRefreshControl对象.跟进到头文件中看到 三个属性,算上初始化三个方法,并不难,然后配置refreshControl 附上代码 /******内置刷新的常用属性设置******/ UIR…
[Android布局学习系列]   1.Android 布局学习之——Layout(布局)详解一   2.Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)   3.Android 布局学习之——LinearLayout的layout_weight属性   4.Android 布局学习之——LinearLayout属性baselineAligned的作用及baseline    Layout Parameters(布局参数): 在XML文件中,我们经常会看到类似于la…
原文链接:http://www.ios122.com/2015/08/mjrefresh/ 简介 MJRefresh这个第三方库是李明杰老师的杰作,这个框架帮助我们程序员减轻了超级多的麻烦,节约了开发时间,提高了开发效率.由于目前能力有限,尚不能自己写一套框架,所以就先膜拜和看明白大牛的框架了. 用于为应用添加常用的上拉加载更多与下拉刷新效果,适用 UIScrollView . UITableView . UICollectionView . UIWebView. gtihub上的地址:http…
说实在的研究Xamarin到现在,自己就没设计出一款好的UI,基本都在研究后台逻辑之类的!作为Xamarin爱好者,一些简单的页面布局知识还是必备的. 布局常见标签: StackLayout AbsoluteLayout RelativeLayout Grid ScrillViewer 主要拿个人最喜欢的StackLayout和Grid做说明. 1.StackLayout 通过它可以设置内部子元素的纵向或者横向布局,默认为纵向. <?xml version="1.0" encod…
概述 许多工程软件,如Qt Creator,VS,matlab等,都是使用dock布局窗口,这样用户可以自定义界面,自由组合窗口. Qt的嵌套布局由QDockWidget完成,用Qt Creator拖界面得到的dock布置形式比较固定,不能得想要的任意组合形式,要得到如下图所示的效果,后续布局必须通过代码来完成.  ps:这是自己没事写的一个数据可视化软件 下面说说如何实现完全自由的界面布局效果: QDockWidget在QMainWindow的布局函数 要在QMainWindow里对dock进…
UIButton的默认布局是:title在右,image在左; 很多时候我们需要的是title在左边,或者title在下面,这时就需要调整UIButton的TitleLabel和ImageView的位置了,查了很多资料,要么零零散散的介绍,要么就是特别复杂的实现;经过一段时间的学习,在这里总结一下实现的方式; 一种是设置UIButton的以下两个属性: @property(nonatomic) UIEdgeInsets titleEdgeInsets; // default is UIEdgeI…
本文由云+社区发表 Flex是Flexible Box 的缩写,意为"弹性布局",是CSS3的一种布局模式.通过Flex布局,可以很优雅地解决很多CSS布局的问题.下面会分别介绍容器的6个属性和项目的6个属性.每个属性会附上效果图,具体实现代码会以github路径形式更新于此. 1.浏览器支持情况 可以点击查看各浏览器的兼容情况 2.容器的属性 注意,设为 Flex 布局以后,子元素的float.clear和vertical-align属性将失效. 容器的属性有6个,分别是: flex…
TableLayout 前面所学的LinearLayout和RelativeLayout两大布局已经完全适用于各种开发条件下,其他的布局仅供参考学习,毕竟知识就是力量,以后的开发过程中万一遇到也能游刃有余. 表格布局允许我们使用表格的方式来排列组件,就是行与列的方式. 简单描述 1.直接往TableLayout中添加组件,这个组件占满一行. <?xml version="1.0" encoding="utf-8"?> <TableLayout xm…