ios xib使用教程cell,xib高度动态怎么设置

iOS开发,怎么注册xib自定义的cell?_百度知道
iOS开发,怎么注册xib自定义的cell?
是自定义了一个继承于UITableView的MyCell,我在RootViewController中需要如何去加载它?ViewDidLoad里?cellForRowAtIndexPath,在哪注册?好像是要先注册:里
提问者采纳
owner- (UITableViewCell *)tableV;UISpecialTableViewCell&quot:self options:(NSIndexPath *)indexPath
static NSString *CellIdentifier = @&quot:CellIdentifier]:@& 自己的一些设置
return (UITableViewCell *)
if (cell == nil)
cell= (UITwitterTableViewCell *)[[[NSBundle
mainBundle]
loadNibNUISpecialTableViewCell&
UISpecialTableViewCell *cell = (UISpecialTableViewCell*)[tableView dequeueReusableCellWithIdentifier:nil]
lastObject]:(UITableView *)tableView cellForRowAtIndexPath
提问者评价
其他类似问题
为您推荐:
ios的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁IOS学习之路七(通过xib自定义UITableViewCell) – lixingle | 查问题
汇聚最新编程技术,编程问题一网打尽
& IOS学习之路七(通过xib自定义UITableViewCell) – lixingle
IOS学习之路七(通过xib自定义UITableViewCell) – lixingle
[作者: 分类: ]
一、新建iOS Application工程,选择Single View Application,不要选中Use Storyboard.假设指定的是product name是:UITableViewCellDemo,则完成后自动生成代码视图如下图:
二。新建一个UITableViewCell文件:
&三。Add—New Files—-User Interface—–Empty XIB
&& & & 创建一个空的 &MyTableViewCell.xib 文件,记住,XIB的名称一定要跟 签名的类的名称一致,也就是一模一样。
&& & & 一定要选 Empty XIB类型,如果不是选的这个,那么创建的XIB里面的已经存在的那个UIView将不能调整高度,它的高度固定死了。
4.在xib中拖入一个Table View Cell 和一个label 一个imageView ,并于MyTableViewCell中连接如下图:
&& & &五。这样,就可以往这个新添加的View里面添加我们自己的个性化控件了,这个View就是我们的Cell的模板了。这个过程跟普通的XIB一样,没有什么特别的。
&& & 那么如何在代码中使用这个MyTableViewCell呢?
&& & 代码如下:
MyTableViewCell类:
//&&MyTableViewCell.h&&
//&&UITableViewCellDemo&&
//&&Created&by&WildCat&on&13-8-6.&&
//&&Copyright&(c)&2013年&wildcat.&All&rights&reserved.&&
#import&&UIKit/UIKit.h&&&
@interface&MyTableViewCell&:&UITableViewCell&&
@property&(weak,&nonatomic)&IBOutlet&UIImageView&*imageV&&
@property&(weak,&nonatomic)&IBOutlet&UILabel&*titleL&&
@property&(copy,nonatomic)&NSString&*titleN&&
@property&(copy,nonatomic)&NSString&*&&
//&&MyTableViewCell.m&&
//&&UITableViewCellDemo&&
//&&Created&by&WildCat&on&13-8-6.&&
//&&Copyright&(c)&2013年&wildcat.&All&rights&reserved.&&
#import&“MyTableViewCell.h”&&
@implementation&MyTableViewCell&&
@synthesize&imageV&&
@synthesize&titleL&&
@synthesize&titleN&&
@synthesize&&&
-(void)setImage:(NSString&*)image{&&
&&&&self.imageView.image=[UIImage&imageNamed:[image&copy]];&&
-(void)setTitleName:(NSString&*)titleName{&&
&&&&self.titleLabel.text=[titleName&copy];&&
–&(id)initWithStyle:(UITableViewCellStyle)style&reuseIdentifier:(NSString&*)reuseIdentifier&&
&&&&self&=&[super&initWithStyle:style&reuseIdentifier:reuseIdentifier];&&
&&&&if&(self)&{&&
&&&&&&&&//&Initialization&code&&
&&&&return&&&
–&(void)setSelected:(BOOL)selected&animated:(BOOL)animated&&
&&&&[super&setSelected:selected&animated:animated];&&
&&&&//&Configure&the&view&for&the&selected&state&&
ViewController类文件:
//&&ViewController.h&&
//&&UITableViewCellDemo&&
//&&Created&by&WildCat&on&13-8-6.&&
//&&Copyright&(c)&2013年&wildcat.&All&rights&reserved.&&
#import&&UIKit/UIKit.h&&&
@interface&ViewController&:&UIViewController&UITableViewDataSource,UITableViewDelegate&&&
@property&(nonatomic,strong)&UITableView&*myTableV&&
//&&ViewController.m&&
//&&UITableViewCellDemo&&
//&&Created&by&WildCat&on&13-8-6.&&
//&&Copyright&(c)&2013年&wildcat.&All&rights&reserved.&&
#import&“ViewController.h”&&
#import&“MyTableViewCell.h”&&
@interface&ViewController&()&&
@implementation&ViewController&&
@synthesize&myTableView=_myTableV&&
#pragma&mark&-实现协议方法&&
–&(NSInteger)numberOfSectionsInTableView:(UITableView&*)tableV{&&
&&&&return&1;&&
–&(NSInteger)tableView:(UITableView&*)tableView&numberOfRowsInSection:(NSInteger)section{&&
&&&&return&5;&&
–&(CGFloat)&tableView:(UITableView&*)tableView&heightForRowAtIndexPath:(NSIndexPath&*)indexPath{&&
&&&&CGFloat&result&=&40.0f;&&
&&&&if&([tableView&isEqual:self.myTableView]){&&
&&&&&&&&result&=&80.0f;&&
&&&&return&&&
–&(UITableViewCell&*)tableView:(UITableView&*)tableView&cellForRowAtIndexPath:(NSIndexPath&*)indexPath{&&
&&&&MyTableViewCell&*&&
&&&&//定义CustomCell的复用标识,这个就是刚才在CustomCell.xib中设置的那个Identifier,一定要相同,否则无法复用&&
&&&&static&NSString&*identifier&=&@“MyTableViewCell”;&&
&&&&//根据复用标识查找TableView里是否有可复用的cell,有则返回给cell&&
&&&&cell&=&(MyTableViewCell*)[tableView&dequeueReusableCellWithIdentifier:identifier];&&
&&&&//判断是否获取到复用cell,没有则从xib中初始化一个cell&&
&&&&if&(!cell)&{&&
&&&&&&&&//将Custom.xib中的所有对象载入&&
&&&&&&&&NSArray&*nib&=&[[NSBundle&mainBundle]&loadNibNamed:@“MyTableViewCell”&owner:nil&options:nil];&&
&&&&&&&&//第一个对象就是CustomCell了&&
&&&&&&&&cell&=&[nib&objectAtIndex:0];&&
&&&&cell.image=@“1.jpeg”;&&
&&&&cell.titleName=@“wildcat的专栏&新浪微博:/u/″;&&
&&&&&return&&&
#pragma&mark&–&Controller方法&&
–&(id)initWithNibName:(NSString&*)nibNameOrNil&bundle:(NSBundle&*)nibBundleOrNil&&
&&&&self&=&[super&initWithNibName:nibNameOrNil&bundle:nibBundleOrNil];&&
&&&&if&(self)&{&&
&&&&&&&&//&Custom&initialization&&
&&&&return&&&
–&(void)viewDidLoad&&
&&&&[super&viewDidLoad];&&
&&&&//&Do&any&additional&setup&after&loading&the&view.&&
&&&&self.view.backgroundColor=[UIColor&redColor];&&
&&&&self.myTableView=[[UITableView&alloc]&initWithFrame:self.view.bounds&style:UITableViewStylePlain];&&
&&&&self.myTableView.dataSource=&&
&&&&self.myTableView.delegate=&&
&&&&self.myTableView.autoresizingMask=UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleW&&
&&&&[self.view&addSubview:self.myTableView];&&
–&(void)viewDidUnload&&
&&&&[super&viewDidUnload];&&
&&&&//&Release&any&retained&subviews&of&the&main&view.&&
&&&&self.myTableView=&&
–&(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation&&
&&&&return&(interfaceOrientation&==&UIInterfaceOrientationPortrait);&&
运行结果:
本文链接:,转载请注明。原文:http://www.ifun.cc/blog//dong-tai-ji-suan-uitableviewcellgao-du-xiang-jie/
这样就进行注册了,接着我们还需要每行显示的数据,为了简单一点,我就声明了一个NSArray变量来存放数据。
self.tableData = @[@&1\n2\n3\n4\n5\n6&, @&567890&, @&1\n2&, @&1\n2\n3&, @&1&];
现在实现UITableViewDataSource的protocol:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
// Return the number of rows in the section.
return self.tableData.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
C1 *cell = [self.tableView dequeueReusableCellWithIdentifier:@&C1&];
cell.t.text = [self.tableData objectAtIndex:indexPath.row];
从self.tableData中的数据我们可以看到,每一个Cell显示的数据高度是不一样的,那么我们需要动态计算Cell的高度。由于是auto layout,所以我们需要用到一个新的API systemLayoutSizeFittingSize:来计算UITableViewCell所占空间高度。Cell的高度是在- (CGFloat)tableView:(UITableView&)tableView
heightForRowAtIndexPath:(NSIndexPath&)indexPath这个UITableViewDelegate的方法里面传给UITableView的。
这里有一个需要特别注意的问题,也是效率问题。UITableView是一次性计算完所有Cell的高度,如果有1W个Cell,那么- (CGFloat)tableView:(UITableView)tableView
heightForRowAtIndexPath:(NSIndexPath&)indexPath就会触发1W次,然后才显示内容。不过在iOS7以后,提供了一个新方法可以避免这1W次调用,它就是- (CGFloat)tableView:(UITableView&)tableView
estimatedHeightForRowAtIndexPath:(NSIndexPath&)indexPath。要求返回一个Cell的估计值,实现了这个方法,那只有显示的Cell才会触发计算高度的protocol. 由于systemLayoutSizeFittingSize需要cell的一个实例才能计算,所以这儿用一个成员变量存一个Cell的实列,这样就不需要每次计算Cell高度的时候去动态生成一个Cell实例,这样即方便也高效也少用内存,可谓一举三得。
我们声明一个存计算Cell高度的实例变量:
@property (nonatomic, strong) UITableViewCell *prototypeC
然后初始化它:
self.prototypeCell
= [self.tableView dequeueReusableCellWithIdentifier:@&C1&];
下面是计算Cell高度的实现:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
C1 *cell = (C1 *)self.prototypeC
cell.t.text = [self.tableData objectAtIndex:indexPath.row];
CGSize size = [cell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
NSLog(@&h=%f&, size.height + 1);
+ size.
看了代码,可能你有点疑问,为何这儿要加1呢?笔者告诉你,如果不加1,结果就是错误的,Cell中UILabel将显示不正确。原因就是因为这行代码CGSize size = [cell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];由于是在cell.contentView上调用这个方法,那么返回的值将是contentView的高度,UITableViewCell的高度要比它的contentView要高1,也就是它的分隔线的高度。如果你不相信,那请看C1.xib的属性,比较下面两张图。
发现没Cell的高度是127, 面contentView的高度是126, 这下明白了吧。
为了让读者看清楚,我将Cell中UILabel的背景色充为了light gray.下面是运行效果:
本小段教程将介绍UITextView在cell中计算高度需要注意的地方。同样参考上面我们创建一个C2.xib, UITableViewCell的子类C2,并关联C2.xib与C2类。并在C2.xib中对其布局,同样使用了auto layout. 布局如下图:
创始UITableViewController的了类T2ViewController,在Main.storyboard中拖入UITableViewController,并关联他们。接着代码中注册C2.xib到UITableView.
下面计是计算高度的代码:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
C2 *cell = (C2 *)self.prototypeC
cell.t.text = [self.tableData objectAtIndex:indexPath.row];
CGSize size = [cell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
CGSize textViewSize = [cell.t sizeThatFits:CGSizeMake(cell.t.frame.size.width, FLT_MAX)];
CGFloat h = size.height + textViewSize.
h = h & 89 ? h : 89;
//89是图片显示的最低高度, 见xib
NSLog(@&h=%f&, h);
return 1 +
在这儿我们是通过sizeThatFits:计算的UITextView的高度(这是计算UITextView内容全部显示时的方法,在第四小段中我们还会用到它),然后加上systemLayoutSizeFittingSize:返回的高度。为什么要这样呢? 因为UITextView内容的高度不会影响systemLayoutSizeFittingSize计算。这句话什么意思呢?我真不知道如何用言语表达了。还是先上一张图吧:
此图中距顶的约束是10, 距底的约束8, 距左边约束是87,距右边的约束是13, 那么systemLayoutSizeFittingSize:返回的CGSize为height等于19, size等于100. 它UITextView的frame是不影响systemLayoutSizeFittingSize:的计算。不知道这样说大家明白没。
所以,我们需要加上textViewSize.height.&
下面是运行效果:
本小段教程将介绍UILabel在Manual layout cell中计算高度, 原理是根据字体与字符串长度来计算长度与宽度。 按照前面介绍的,我们需要创建C3.xib, C3类, T3ViewController类,Main.storyboard中拖入UITableViewController,并分别建立关联。 为了简单,C3.xib中我就不加padding之类的了,如图
记得关闭C3.xib的auto layout
直接上代码了:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
C3 *cell = [self.tableView dequeueReusableCellWithIdentifier:@&C3&];
cell.t.text = [self.tableData objectAtIndex:indexPath.row];
[cell.t sizeToFit];
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
C3 *cell = (C3 *)self.prototypeC
NSString *str = [self.tableData objectAtIndex:indexPath.row];
cell.t.text =
CGSize s = [str calculateSize:CGSizeMake(cell.t.frame.size.width, FLT_MAX) font:cell.t.font];
CGFloat defaultHeight = cell.contentView.frame.size.
CGFloat height = s.height & defaultHeight ? s.height : defaultH
NSLog(@&h=%f&, height);
这儿用到了一个NSString的Cagetory方法:
- (CGSize)calculateSize:(CGSize)size font:(UIFont *)font {
CGSize expectedLabelSize = CGSizeZ
if ([[[UIDevice currentDevice] systemVersion] floatValue] &= 7) {
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.lineBreakMode = NSLineBreakByWordW
NSDictionary *attributes = @{NSFontAttributeName:font, NSParagraphStyleAttributeName:paragraphStyle.copy};
expectedLabelSize = [self boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil].
expectedLabelSize = [self sizeWithFont:font
constrainedToSize:size
lineBreakMode:NSLineBreakByWordWrapping];
return CGSizeMake(ceil(expectedLabelSize.width), ceil(expectedLabelSize.height));
原理上面我已说了,这儿没有什么好说明的,代码一目了然。
运行效果如图:
本小段教程将介绍UITextView在Manual layout cell中计算高度, 原理是与第二小节里的相同,用sizeThatFits:的方法计算UITextView的长度与高度。然后加上padding就是Cell的高度。 按照前面介绍的,我们需要创建C4.xib, C4类, T4ViewController类,Main.storyboard中拖入UITableViewController,并分别建立关联。 为了简单,C4.xib中我就不加padding之类的了,如图
计得关闭C4.xib的auto layout
也直接上代码了,直观明了:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
C4 *cell = [self.tableView dequeueReusableCellWithIdentifier:@&C4&];
cell.t.text = [self.tableData objectAtIndex:indexPath.row];
[cell.t sizeToFit];
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
C4 *cell = (C4 *)self.prototypeC
NSString *str = [self.tableData objectAtIndex:indexPath.row];
cell.t.text =
CGSize s =
[cell.t sizeThatFits:CGSizeMake(cell.t.frame.size.width, FLT_MAX)];
CGFloat defaultHeight = cell.contentView.frame.size.
CGFloat height = s.height & defaultHeight ? s.height : defaultH
运行效果:
本小节要介绍的一个功能是,UITextView中UITableViewCell中,当输入UITextView中的字变多/变少时,高度变化,Cell高度与随之变化的功能。
按照前面介绍的,我们需要创建C5.xib, C5类, T5ViewController类,Main.storyboard中拖入UITableViewController,并分别建立关联。 为了简单,C5.xib中我就不加padding之类的了,如图
记得开启C5.xib的auto layout
先看代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
C5 *cell = [self.tableView dequeueReusableCellWithIdentifier:@&C5&];
cell.t.text = @&123&;
cell.t.delegate =
#pragma mark - UITableViewDelegate
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
C5 *cell = (C5 *)self.prototypeC
cell.t.text = self.updatedS
CGSize s =
[cell.t sizeThatFits:CGSizeMake(cell.t.frame.size.width, FLT_MAX)];
CGFloat defaultHeight = cell.contentView.frame.size.
CGFloat height = s.height & defaultHeight ? s.height : defaultH
#pragma mark - UITextViewDelegate
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if ([text isEqualToString:@&\n&]) {
NSLog(@&h=%f&, textView.contentSize.height);
return YES;
- (void)textViewDidChange:(UITextView *)textView {
self.updatedStr = textView.
[self.tableView beginUpdates];
[self.tableView endUpdates];
原理就是UITextView内容改变的时候,计算自身高度,然后通知UITableView更新,这样就会触发UITableViewCell高度重新计算,以达到目的。&
本文只是简单的介绍了一些原理与技巧,细节之处还请参看&
时间仓促,难免有不少错误,还往指正。若有问题,请留言或加入QQ技术群:&疯狂IT人&
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:676184次
积分:9200
积分:9200
排名:第794名
原创:199篇
转载:246篇
评论:102条
(19)(1)(4)(2)(1)(2)(1)(4)(1)(2)(1)(4)(2)(2)(5)(7)(9)(4)(1)(5)(3)(3)(4)(1)(11)(12)(18)(42)(15)(1)(5)(6)(1)(5)(10)(27)(23)(3)(12)(16)(20)(20)(15)(16)(21)(25)(18)(9)(8)4776人阅读
12345678910111213141516171819202122232425262728293031323334353637static NSString *CellIdentifier = @&CellIdentifier&;&- (void)viewDidLoad{&&&&//注册TableView中用于复用的Cell&&&&[self.tableView registerNib:[UINib nibWithNibName:@&BBSPostContentCell& bundle:nil] forCellReuseIdentifier:CellIdentifier];&&&&//...}&//关键方法,获取复用的Cell后模拟赋值,然后取得Cell高度- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{&&&&BBSPostContentCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];&&&&&&&&NSDictionary *dataSourceItem = [self.dataSource objectAtIndex:indexPath.row];&&&&cell.titleLabel.text =&&[dataSourceItem valueForKey:@&title&];&&&&cell.contentLabel.text = [dataSourceItem valueForKey:@&body&];&& &&&&[cell setNeedsUpdateConstraints];&&&&[cell updateConstraintsIfNeeded];&&&&&&&&CGFloat height = [cell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;&&&&&&&&return height;}&//在cellForRowAtIndexPath中,按照常规方法做赋值就行了- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{&&&&BBSPostContentCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];&&&&&&&&NSDictionary *dic = dataSource[indexPath.row];&&&&cell.titleLabel.text = dic[@&title&];&&&&cell.contentLabel.text = dic[@&body&];&&&&&&&&return cell;}: 在测试时发现这部分的代码还存在一些性能问题(整个表视图在更新时会卡顿),我会稍后补上。我在使用Instruments分析发现,heightForRowAtIndexPath中调用dequeueReusableCellWithIdentifier会占用很多CPU资源,因此我试着不使用registerNib方法注册复用Cell,而在代码中手动处理,类似这样:
BBSPostContentCell*cell=[tableView
dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell==nil){
&&&&cell=[[NSBundlemainBundle]
loadNibNamed:@&BBSPostContentCell&
owner:self
options:NULL][0];
&&&&NSLog(@&cell
loadNibNamed&);
&&&&NSLog(@&cell
dequeueReusableCellWithIdentifier&);
这时我发现这里的Cell调用dequeueReusableCellWithIdentifier方法总是返回nil,因此每次都是从xib中加载,从而耗费了大量的资源。问题的原因我还不清楚,目前我的解决方法是,单独生成一个Cell用于在heightForRowAtIndexPath方法中计算高度。
其次,在[tableView reloadData]和[tableView insertRowsAtIndexPaths]时,底层会将所有行高重新计算,这个会占用大量的时间,因此我试着对行高做了缓存,暂时解决了这个问题。
关于兼容性问题
由于Autolayout只能在iOS6.0以上版本使用,而根据友盟统计,目前6.0以下的用户大概还有8%左右(2013.12)。现在有两个办法解决:
哥不在乎,放弃这些用户!(好霸气=。=)把项目的部署版本修改为6.0以上即可。
咳…咳…这个嘛,用户还是有必要支持的………恩,那我们来说说这个怎么兼容。
思路很简单,我们告诉XCode,6.0以上版本使用Autolayout,以下的旧版本不要使用这个就可以了。
将原xib文件inspector中选择”Interface Builder Document”-&”Build for”-&”iOS 6.0 and Later”,告诉XCode,这个xib在6.0以上设备编译。
将xib文件拷贝一份副本,命名为”xxx_iOS5.xib”,在inspector中选择”Project Deployment Target”,也就是说使用项目部署目标版本(即最低版本5.0),并取消”Use Autolayout”选项。
在代码中根据系统版本加载不同的xib文件:
1234567891011121314#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) \([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)&#define IS_SUPPORT_AUTOLAYOUT&& SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@&6.0&)&- (void)viewDidLoad{&&&&if (!IS_SUPPORT_AUTOLAYOUT) {&&&&&&&&//for iOS 5.x&&&&&&&&[self.tableView registerNib:[UINib nibWithNibName:@&BBSPostContentCell_iOS5& bundle:nil] forCellReuseIdentifier:CellIdentifier];&&&&} else {&&&&&&&&[self.tableView registerNib:[UINib nibWithNibName:@&BBSPostContentCell& bundle:nil] forCellReuseIdentifier:CellIdentifier];&&&&}}最后别忘了在高度计算时,区分下代码:
-(CGFloat)tableView:(UITableView*)tableView
heightForRowAtIndexPath:(NSIndexPath*)indexPath
&&&&if(IS_SUPPORT_AUTOLAYOUT){
&&&&&&&&//Autolayout部分代码,同上
&&&&&&&&//.....
&&&&&&&&returnheight;
&&&&}else{
&&&&&&&&//for
&&&&&&&&//为了简单起见,就直接使用固定值了,当然如果你要自己为iOS5用户手动计算动态高度,也是可以的。
&&&&&&&&return81;
2013的最后一篇文章,元旦快乐!
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:327764次
积分:3865
积分:3865
排名:第3712名
原创:11篇
转载:281篇
评论:62条
(4)(1)(5)(3)(4)(9)(40)(23)(52)(22)(11)(15)(3)(22)(36)(2)(2)(22)(2)(1)(1)(7)(3)(6)(6)(3)(5)(18)(23)(4)(1)两天热门文章
最新推荐文章

我要回帖

更多关于 ios开发xib创建cell 的文章

 

随机推荐