【代码笔记】iOS-cell自动变化大小
一,效果图。
二,工程图。
三,代码。
RootViewController.h

#import <UIKit/UIKit.h> @interface RootViewController : UIViewController
<UITableViewDataSource,UITableViewDelegate>
{
UITableView* myTableView;
NSDictionary *dataDic;
}
@property (nonatomic , retain)NSArray* titleArray;
@property (nonatomic , retain)NSArray* contentArray; @end

RootViewController.m

#import "RootViewController.h"
#import "RTLabel.h" @interface RootViewController () @end @implementation RootViewController - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
} - (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view. self.title=@"RTLabel"; [self initContentView]; }
- (void)initContentView
{
//初始化标题
self.titleArray = [NSArray arrayWithObjects:
@"姓名:",
@"年绩:",
@"家乡:",
@"介绍:",
nil]; self.contentArray = [NSArray arrayWithObjects:
@"李华",
@"23",
@"河北",
@"我叫李华,今年23,来自河北,希望大家多多欢迎,喜欢计算机,来自河北的一个学校.111111111111111111111111111",nil]; //添加列表
myTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, self.view.bounds.size.height) style:UITableViewStylePlain];
[myTableView setDelegate:self];
[myTableView setDataSource:self];
[myTableView setBackgroundColor:[UIColor clearColor]];
[self.view addSubview:myTableView];
}
#pragma mark - tableview delegate and dataSoucre - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString* identifier = @"cell"; UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:identifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
[cell setSelectionStyle:UITableViewCellSelectionStyleNone]; [cell setBackgroundColor:[UIColor clearColor]]; //cell白色背景
UIImage* bcImg = [UIImage imageNamed:@"label"];
UIImageView* bcImgV = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(cell.frame), CGRectGetHeight(cell.contentView.frame))];
[bcImgV setImage:bcImg];
[cell.contentView addSubview:bcImgV]; //cell中的内容
RTLabel* nameLabel = [[RTLabel alloc] initWithFrame:CGRectMake( 10, 15, 300 , 15)];
[nameLabel setText:[NSString stringWithFormat:@"<font face='Helvetica' size=14 color=orange> %@ </font> <font face=AmericanTypewriter size=14 color=gray> %@ </font> ",[self.titleArray objectAtIndex:indexPath.row],[self.contentArray objectAtIndex:indexPath.row]]];
CGSize optimumSize = [nameLabel optimumSize];
[nameLabel setFrame:CGRectMake( 10, 15, 300 , optimumSize.height)];
[nameLabel setBackgroundColor:[UIColor clearColor]];
[cell.contentView addSubview:nameLabel]; [bcImgV setFrame:CGRectMake(0, 0, 320, 30 + optimumSize.height)];
}
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
RTLabel *label = [[RTLabel alloc] initWithFrame:CGRectMake(10,10,300,100)];
//[label setFont:[UIFont fontWithName:@"HelveticaNeue-CondensedBold" size:20]];
[label setParagraphReplacement:@""];
[label setText:[NSString stringWithFormat:@"<font face='Helvetica' size=14 color=orange> %@ </font> <font face=AmericanTypewriter size=14 color=gray> %@ </font> ",[self.titleArray objectAtIndex:indexPath.row],[self.contentArray objectAtIndex:indexPath.row]]];
CGSize optimumSize = [label optimumSize]; return 30 + optimumSize.height;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return self.titleArray.count;
} - (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
} @end

【代码笔记】iOS-cell自动变化大小的更多相关文章
- UGUI小技巧之Text随文本内容自动变化大小
看了网上很多帖子,都是说在 Text 上面加上 Content Size Fitter 组件,并将对应的轴向改成 Preferred size 就可以实现 Text 大小随着文本内容自适应,如下图: ...
- Qt QLabel 大小随内容自动变化 && 内容填充整个label空间
图1:label的本身大小 图2:给label设置文字,不做任何别的设置 ui->label->setText(QObject::tr("current font is %1&q ...
- Web开发者和设计师必须要知道的 iOS 8 十个变化
原文出处: mobilexweb 译文出处:罗磊(@罗罗磊磊) 欢迎分享原创到伯乐头条 喜大普奔,喜极而泣,喜当爹,随着iPhone 6和iPhone 6 plus的上市,ios 8终于在上周 ...
- 基于MVC4+EasyUI的Web开发框架经验总结(17)--布局和对话框自动适应大小的处理
在我自己的<Web开发框架>中,用了很多年的EasyUI,最新版本EasyUI为1.4.5,随着版本的更新,其很多功能得到了很大的完善和提高,同时也扩展了一些新的功能,以前在布局和对话框弹 ...
- Masonry -- 使用纯代码进行iOS应用的autolayout自适应布局
简介 简化iOS应用使用纯代码机型自适应布局的工作,使用一种简洁高效的语法替代NSLayoutConstraints. 项目主页: Masonry 最新示例: 点击下载 项目简议: 如果再看到关于纯代 ...
- 减小iOS应用程序的大小
减小iOS应用程序的大小 本文译自:Reducing the size of my App Q: 怎样才能让我的程序安装包小一点,让程序的下载和安装更快速? A: 本文收集了一些减小程序安装包大小的相 ...
- 笔记-iOS 视图控制器转场详解(上)
这是一篇长文,详细讲解了视图控制器转场的方方面面,配有详细的示意图和代码,为了使得文章在微信公众号中易于阅读,seedante 辛苦将大量长篇代码用截图的方式呈现,另外作者也在 Github 上附上了 ...
- 在iOS上自动检测内存泄露
手机设备的内存是一个共享资源.应用程序可能会不当的耗尽内存.崩溃,或者遭遇大幅度的性能降低. Facebook iOS客户端有很多功能,并且它们共享同一块内存空间.如果任何特定的功能消耗过多的内存,就 ...
- 根据Facebook内存的管理使用,浅谈在iOS上自动检测内存泄漏问题
分装库下载:https://github.com/facebook/FBMemoryProfiler FBMemoryProfiler类库使用教程:http://ifujun.com/fbmemory ...
随机推荐
- 跨域请求之jsonp的实现方式
ajax请求受同源策略影响,不允许进行跨域请求,而script标签src属性中的链接却可以访问跨域的js脚本,利用这个特性,服务端不再返回JSON格式的数据,而是返回一段调用某个函数的js代码,在sr ...
- mybatis 关联表查询
这段时间由于项目上的需求:需要将数据库中两表关联的数据查询出来展示到前端(包含一对一,一对多): (1)一对一: 在实体类中维护了另一个类的对象: 这里我以用户(User)和产品(Product)为例 ...
- jmeter制造大批量的用户数据数据
需求:因测试需要,要造100w用户数据,通过用户名.手机号.密码可新增用户,其中用户名和电话号码要求100w用户不能重复 要点: 1.通过Bean shell Sampler实现用户名和手机号的足够随 ...
- celery初始化
# 在任务处理者一端加初始化 import os import django os.environ.setdefault("DJANGO_SETTINGS_MODULE", &qu ...
- rabbitmq系列三 之发布/订阅
1.发布/订阅 在上篇教程中,我们搭建了一个工作队列,每个任务只分发给一个工作者(worker).在本篇教程中,我们要做的跟之前完全不一样 —— 分发一个消息给多个消费者(consumers).这种模 ...
- Java之集合(十七)ConcurrentLinkedQueue
转载请注明源出处:http://www.cnblogs.com/lighten/p/7491057.html 1.前言 ConcurrentLinkedQueue是一个无界的线程安全队列,遵循FIFO ...
- [转]你真的了解 console 吗
原文:https://segmentfault.com/a/1190000000481884 对于前端开发者来说,在开发过程中需要监控某些表达式或变量的值的时候,用 debugger 会显得过于笨重, ...
- CSS3中的pointer-events
今天做项目中偶然误把元素加上了pointer-events属性,结果导致后来在js中给该元素加点击事件不能用,检查了半天才发现是这个属性的问题.之前没有好好研究,于是决定仔细研究一下. 一.定义及语法 ...
- 如何虚拟机里安装Win10操作系统
不多说,直接上干货! Windows Server 2003.2008.2012系统的安装 推荐网址:打开MSDN网站(http://msdn.itellyou.cn ) 关于给电脑换系统,很多人会花 ...
- java.lang.ArithmeticException: Rounding necessary
这个错误就是精度丢失问题 https://blog.csdn.net/qq496013218/article/details/70792655