如何调整uitableviewcell点击的宽度

动态调整UITableViewCell高度的实现方法
招聘信息:
&&& 有时我们需要动态调整UITableViewCell的高度,根据内容的不同设置不同的高度,以前看到一种实现方法,写得有点麻烦,具体地址找不到了,这里有个更好的(至少我认为),分享一下部分代码。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
&&& static NSString *CellIdentifier = @"Cell";
&&& UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
&&& if (cell == nil) {
&&& &&& cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
&&& &&& UILabel *label = [[UILabel alloc] initWithFrame:CGRectZero];
&&& &&& label.tag = 1;
&&& &&& label.lineBreakMode = UILineBreakModeWordW
&&& &&& label.highlightedTextColor = [UIColor whiteColor];
&&& &&& label.numberOfLines = 0;
&&& &&& label.opaque = NO; // 选中Opaque表示视图后面的任何内容都不应该绘制
&&& &&& label.backgroundColor = [UIColor clearColor];
&&& &&& [cell.contentView addSubview:label];
&&& &&& [label release];
&&& UILabel *label = (UILabel *)[cell viewWithTag:1];
&&& NSString *
&&& text = [textArray objectAtIndex:indexPath.row];
&&& CGRect cellFrame = [cell frame];
&&& cellFrame.origin = CGPointMake(0, 0);
&&& label.text =
&&& CGRect rect = CGRectInset(cellFrame, 2, 2);
&&& label.frame =
&&& [label sizeToFit];
&&& if (label.frame.size.height > 46) {
&&& &&& cellFrame.size.height = 50 + label.frame.size.height - 46;
&&& else {
&&& &&& cellFrame.size.height = 50;
&&& [cell setFrame:cellFrame];
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
&&& UITableViewCell *cell = [self tableView:tableView cellForRowAtIndexPath:indexPath];
&&& return cell.frame.size.
微信扫一扫
订阅每日移动开发及APP推广热点资讯公众号:CocoaChina
点击量17696点击量11157点击量6230点击量5750点击量5612点击量5173点击量5127点击量5066点击量4815
&2015 Chukong Technologies,Inc.
京公网安备89如何在UITableviewCell中创建UITableView-中国学网-中国IT综合门户网站
> 如何在UITableviewCell中创建UITableView
如何在UITableviewCell中创建UITableView
转载 编辑:李强
为了帮助网友解决“如何在UITableviewCell中创”相关的问题,中国学网通过互联网对“如何在UITableviewCell中创”相关的解决方案进行了整理,用户详细问题包括:RT,我想知道:如何在UITableviewCell中创建UITableView,具体解决方案如下:解决方案1:而不是滑动)但 UITableView 的高度是固定的,可以是每个 cell 里排5个:delegate 复杂,cell也会增长(换言之,view 的层叠关系复杂这样反而不能达到你的需求、右边两个 label 的。然后 footer 或最后一个 cell 是加载更多建议不要在 cell 里套 tableView在 cell 里再加 UITableView。它天然是适合滚动的,也感觉这样很不好,而不是全部显示;也可以是全排在一个 view 里。原因有2,在这两个cell里面所有内容都需要被全部展示,里面根据你 collectionView 的情况而定。你说想要,把这个 view 添加到唯一的 cell 上或添加到 headerView 上:对应的cell里面的tableview长度会增长,里面是 ScrollView;下面的大 cell 改成第二个 section,里面的 cell 里左边有图片。可能的代替做法我觉得这个需求可以考虑能否把这上下两个大 cell 考虑为两个 section?上面的大 cell 改成第一个 section,footer 或最后一个 cell 是“加载更多”。比如是本来是一行排5个,理论上或许可行(让外层 cell 作为内层 tableView 的 delegate),但我从没见过这样的写法通过对数据库的索引,我们还为您准备了:答:1.UITableViews存储他们的NSIndexPath。因此存在对部分没有对象。使用下面的代码就可以遍历表并执行的可见部分索引(我不知道你为什么想要看到的部分,因为他们看到,目前在屏幕上,但不管)。 for (NSIndexPath* i in [yourTableViewName index...===========================================答:建议不要在 cell 里套 tableView 在 cell 里再加 UITableView,理论上或许可行(让外层 cell 作为内层 tableView 的 delegate),但我从没见过这样的写法,也感觉这样很不好。原因有2: delegate 复杂,view 的层叠关系复杂 这样反而不能达到你...===========================================答:1.首先说的是添加向右的箭头,这个很简单,只要在cellForRowAtIndexPath:方法中执行以下代码: cell.accessoryType = UITableViewCellAccessoryDisclosureI 这样就可以达到添加向右箭头的效果了,其实还有其他几个样式,也是可以在cell...===========================================答:两种方式,看你的tableView是哪种样式。 如果是UITableViewStylePlain,你可以将UITableViewCell的separator设置为UITableViewCellSeparatorStyleNone。将tableViewCell的背景色,contentView的背景色设置为透明,在contentView中添加一个UIImag...===========================================答:使用[XXX addSubView:(NSInteger)section:(NSInteger)section,或者加到UITableViewCell中也可以. will be adjusted to default or specified header height- (UIView *)tableV custom view for header:(UITableView *)tableView viewForFoot...===========================================问:我想要对不同的UITableViewCell设置高度,具体怎么做呢?答:操作方法: UITableView加载的顺序是先得到表的行的高度,也就是先调用heightForRowAtIndexPath方法,然后再调用cellForRowAtIndexPath,所以我们有两个办法实现自定义cell高度: 一:改变它的加载顺序,或者说白了就是计算好cell高度后,再次让...===========================================问:我想要对不同的UITableViewCell设置高度,具体怎么做呢?答:您好,很高兴能帮助您, - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWi...===========================================问:我想要对不同的UITableViewCell设置高度,具体怎么做呢?答:自定义颜色和背景设置 改变UITableViewCell选中时背景色: UIColor *color = [[UIColoralloc]initWithRed:0.0green:0.0blue:0.0alpha:1];//通过RGB来定义自己的颜色 [html] view plaincopyprint? 01.cell.selectedBackgroundView = [[[UIView al...===========================================问:我想要对不同的UITableViewCell设置高度,具体怎么做呢?答:建议不要在 cell 里套 tableView 在 cell 里再加 UITableView,理论上或许可行(让外层 cell 作为内层 tableView 的 delegate),但我从没见过这样的写法,也感觉这样很不好。原因有2: delegate 复杂,view 的层叠关系复杂 这样反而不能达到===========================================
本文欢迎转载,转载请注明:转载自中国学网: []
用户还关注
可能有帮助您所在的位置: &
使用UITableViewCell的自定义子类(1)
使用UITableViewCell的自定义子类(1)
漆振/谢巧云/孙文磊译
人民邮电出版社
《iPhone开发基础教程》第8章介绍表视图,表视图是向用户提供数据列表的主要方法,并且是基于分层导航的应用程序的基础。本节为大家介绍使用UITableViewCell的自定义子类。
8.5.3& 使用UITableViewCell的自定义子类(1)
我们很幸运,可以使用Interface Builder设计表视图单元。我们将使用Interface Builder重新创建与刚才使用代码构建的界面相同的两行界面。要达到此目的,可以创建一个UITableViewCell子类和一个包含表视图单元的新nib文件。然后,当我们需要一个表视图单元来表示一行时,不是向标准的表视图单元添加子视图,而是从nib文件加载子类,并使用将添加的两个输出口来设置名称和颜色。有道理吗?让我们开始付诸行动吧。
在Xcode中右键单击(或Ctrl+单击)Classes文件夹,从出现的Add子菜单中选择New File…,或者按下 键。新建文件向导出现后,从左侧窗格选择Cocoa Touch Classes,然后从右上窗格选择UITableViewCell子类。单击Next按钮,将新文件命名为CustomCell.m,并确保选中了Also Create"CustomCell.h"复选框。
创建文件之后,在Xcode中右键单击Resources文件夹,再次选择Add→New File…。这一次,在新建文件向导的左侧窗格中单击User Interfaces,在右上窗格中选择Empty XIB。当提示输入名称时,输入CustomCell.xib。
1. 创建UITableViewCell子类
创建所有必要的新文件之后,下面让我们继续创建UITableViewCell的新子类。
我们将在子类中使用输出口,这会简化对需要在每一行更改的值的设置。我们可以再次使用标记(tag),这完全避免了创建子类,而使用这种方式,代码会更加简明并容易阅读,因为我们可以仅通过设置属性来设置每一行单元上的标签,如下所示:
单击CustomCell.h,添加以下代码:
这就是我们需要添加的所有内容,下面切换到CustomCell.m,并添加两行代码:
保存上面的代码,并准备好自定义子类。
2. 在Interface Builder中设计表视图单元
下一步,双击CustomCell.xib,在Interface Builder中打开文件。这个主窗口中只有两个图标:File's owner和First Responder。在库中找到表视图单元(参见图8-14),然后把它拖动到主窗口中。
(点击查看大图)
确保选中了表视图单元,然后按下 ,打开标识检查器。将类从UITableViewCell改为CustomCell。
然后,按下 ,打开大小检查器,将表视图单元的高度从44改为65。这会让我们有更多的活动空间。
最后,按下 ,打开属性检查器。其中第一个字段是Identifier,它是我们在代码中使用过的可重用的标识符。如果记不起来这一内容,请查阅本章前面的内容并找到SimpleTableIdentifier。将Identifier设置为CustomCell- Identifier。下一步,找到名称为Accessory的弹出按钮,把Detail Discloure改为None(参见图8-15)。扩展图标会在单元中占用一些空间,但是我们希望整个单元空间都归自己所用。下一章将详细地讨论扩展图标。
图8-15& 关闭扩展图标
记住,即使UITableViewCell是UIView的子类,它仍然使用内容视图对子视图进行保存和分组。双击Custom Cell图标,将打开一个新的窗口,你会发现一个标记为Content View的灰色虚线圆角矩形(参见图8-16)。
图8-16& 表视图单元的窗口
图8-17& 表视图单元的设计
Interface Builder通过这种方式告诉你应该添加一些内容,因此在库中找到View并把它拖到Custom Cell窗口中。
发布视图之后会发现它的大小和窗口大小不一致,还要进行调整。选中新的视图,打开大小检查器。通过将x设置为0,y设置为0,w设置为320,h设置为65,把View的大小和位置改为符合Custom Cell窗口的大小。
现在所有项都设置完成了。我们有了一个画布,可以使用它在Interface Builder中设计表视图单元。下面就开始吧。
从库中拖动4个标签到Custom Cell窗口,按照图8-17所示进行布局和重命名。要将Name:和Color:设置为黑体,选中它们并按下 。下一步,选中右上方的标签,增加其宽度,将其右边缘拖到右边的蓝线。按同样方式更改右下位置的标签。这样做的目的是让名称和颜色数据拥有更大的显示空间。
现在,按下Control键,并将Custom Cell图标拖到视图右上位置的标签,为它指定nameLabel输出口。然后,按下Control键,把Custom Cell图标再次拖到右下位置的标签,为它指定colorLabel输出口。
你可能很奇怪为什么我们没有做任何和File's Owner图标有关的事情。原因是根本不需要。我们使用这个表单元显示数据,不过与用户的所有交互都是通过表视图来完成的,因此它不需要自己的控制器类。我们实际上只是使用nib作为一种模板,以便可视地设计表单元。
保存nib并将其关闭,然后返回Xcode。
【责任编辑: TEL:(010)】
关于&&&&&&&&的更多文章
本书以最新的 iOS 7.0、Xcode 5 为平台,全面介绍 iOS 应用开发
本书描述了黑客用默默无闻的行动为数字世界照亮了一条道路的故事。
我们之所以感受到折磨,是因为我们失去了对真我的察觉
UMLChina 首席专家潘加宇的第一本书。作者在为软件组
MATLAB 发展至今,其版本已经升级到MATLAB 2013a,软
本书是以一个典型的计算机广域网通信为背景进行编写的,详细、全面地介绍了通信网中最主要的两个部分:目前,国内外接入网与交换
51CTO旗下网站UITableViewCell使用自动布局根据内容动态调整高度,动态调整Cell的高度UITableViewCell using automatic layout based on the content dynamically adjust height, dynamic adjustment of the height of the Cell.
【北京电信下载】下载链接获取成功,请点击下载。}

我要回帖

更多关于 uitableviewcell重用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信