自定义一个Cell

当我们要显示复杂数据的时候,例如要做一个扣扣聊天界面,或是新闻列表,系统的行已经不能满足我们的要求,这个时候我们可以通过自定义这个行,让他显示更多复杂结构的样式。

自定义cell就是创建一个UITabelViewCell的子类,把cell上的控件创建都封装在子类中,简化UIViewController中的代码然后把子视图控件添加到cell的contentView上

cell中的控件如何显示model中的信息

cell中声明一个model类型的属性,viewController中获取到Model对象后赋值给cell的Model属性

cell中重写Model的setter方法,把Model对象中的内容重新赋值给各个控件

M和V不直接进行通信,C负责M和V之间进行通信

多种类型的CELL混合

开发中常见多种类型的cell混合在一个tableView中使用,通常每种类型的cell有不同的布局样式

通常我们会在tabelView:cellForRowAtIndexPath:方法中根据不同的Model来决定使用什么类型的cell

每种类型的cell要定义不同的重用标识符,cell重用的时候会根据重用标识符从重用队列中取用哪种类型的cell

例如我们定义一个ComposeCel类型的标识符和ReceivedCell类型的标识符

然后通过判断并根据不同的标识符从重用队列中取用不同类型的表格

cell自适应高度

之前我们使用的cell一直都是同样的高度,或者某行固定高度,但在实际开发中,经常要让cell根据Model中文本的长短动态的更改高度。

首先获取文本的高度

计算文本高度是所用的字体要和label显示时所用的字体一致

label的宽度要和计算时使用的限定宽度一致,这样才能保证文本显示在label中时,label高度恰巧够

tableView:heightForRowAtIndexPath:

UITabelView 高级(自定义Cell)的更多相关文章

  1. UI学习笔记---第十一天UITableView表视图高级-自定义cell

    自定义cell,多类型cell混合使用,cell自适应高度 自定义cell就是创建一个UITableViewCell的子类 把cell上的空间创建都封装在子类中,简化viewController中的代 ...

  2. iOS中 自定义cell升级版 (高级)

    接上次分享的自定义cell进行了优化:http://blog.csdn.net/qq_31810357/article/details/49611255 指定根视图: self.window.root ...

  3. 自定义cell自适应高度

    UITableView在许多App种被大量的应用着,呈现出现的效果也是多种多样的,不能局限于系统的一种样式,所以需要自定义cell 自定义cell呈现的内容也是多种多样的,内容有多有少,所以需要一种能 ...

  4. 自定义cell(xib)中button点击事件不能响应的情况

    遇到这种问题真的好尴尬,之前从来没有遇到过,以为手到擒来,未曾料到还会遇到问题! 好多年没有找到尴尬的感觉,现在找到了,真的很尴尬 !  *o* 1.首先使用场景: 原本没打算用xib,后来为了快速, ...

  5. ios中自定义cell 设置cell的分组结构

    ios系统默认的cell并不能满足我们的需求 这个时候就需要自定义我们的cell 自定义cell为分组的时候 需要设置分组样式  以下是我常用分组的二种方法: 第一是 在自定义的UITableView ...

  6. iOS开发小技巧--纯代码自定义cell

    纯代码自定义cell 自定义cell的步骤(每个cell的高度不一样,每个cell里面显示的内容也不一样) 1.新建一个继承自UITableViewCell的子类 2.在initWithStyle:方 ...

  7. 自定义cell的一些知识

    1.要往cell里面添加一个自定义的子控件,都是添加到cell的contentView,不是添加到cell里面. 2.通过xib自定义cell * 添加tableView * 加载团购数据 * 新建x ...

  8. 给自定义cell赋值

    搭建自定义cell-给自定义cell赋值的思路 1 主控制器 1.1导入头文件 #import "LHQInvestmentManagementCell.h" #import &q ...

  9. 自定义cell

    思路就是创建模型,自定义cell,然后在主控制器中完成,首先要观察plist文件: Contact.h #import <Foundation/Foundation.h> @interfa ...

随机推荐

  1. 学习练习 java输入输出流 练习题1

    .编写TextRw.java的Java应用程序,程序完成的功能是:首先向TextRw.txt中写入自己的学号和姓名,读取TextRw.txt中信息并将其显示在屏幕上. package com.hanq ...

  2. 华为OJ平台——计算字符串的相似度

    题目描述: 对于不同的字符串,我们希望能有办法判断相似程度,我们定义了一套操作方法来把两个不相同的字符串变得相同,具体的操作方法如下: 1 修改一个字符,如把“a”替换为“b”. 2 增加一个字符,如 ...

  3. android 解析json数据格式(转)

    json数据格式解析我自己分为两种: 一种是普通的,一种是带有数组形式的: 普通形式的:服务器端返回的json数据格式如下: {"userbean":{"Uid" ...

  4. C++学了这么多年,你仍不知道的事

    C++学了这么多年你知道为什么定义类时,类的定义放在.h文件中,而类的实现放在cpp文件中.它们为什么能够关联到一起呢?你知道什么东西可以放在.h文件中,什么不能.什么东西又可以放在cpp文件中.如果 ...

  5. css经验点滴积累

    1.filter:alpha(opacity=70);-moz-opacity:0.7;-webkit-opacity: 0.7;-o-opacity: 0.7;-ms-opacity: 0.7;op ...

  6. Unieap3.5Java端常用公用方法

    String OrgId = McssComMethod.getDimensionID(); Date systemDate =  DataStoreUtil.getOracleSystemDate( ...

  7. Android TestView文本文字修改实例

    这里我们给大家总结了下关于Android TextView文本文字的常用两种应用,一种是像我们使用微信会看到长文件是可以折叠显示了,还有一种就是TextView文字颜色TextColor焦点效果,下面 ...

  8. ASP.NET中的状态保持(转载)

    状态是某一类型的数据在一定时期内保持活跃的信息.这里说的一定时期可以使整个应用程序的生命周期,可以使用户操作程序的时间,当然也可以是单个页面的生命周期等.  为了解决传统Web编程中固有的限制,ASP ...

  9. Operation is not valid due to the current state of the object.

    今天遇到一个asp.net的草郁闷的问题,看下截图 狂晕啊,在google上狂搜了一下,好在已经有大侠也遇到过这个问题了,先看下别人的解决办法吧 Operation is not valid due ...

  10. try 返回前执行fianlly

    try catch  finally 语句中 如果try中有返回语句,如果在fianlly代码块中有对这个值修改的话,并不影响其放回值 public class Test { public stati ...