如何使添加到 UITableViewCell 内容视图的 UIView 适合其范围?
Posted
技术标签:
【中文标题】如何使添加到 UITableViewCell 内容视图的 UIView 适合其范围?【英文标题】:how to make a UIView added to UITableViewCell content view fit within its bounds? 【发布时间】:2011-06-12 21:35:19 【问题描述】:如何使添加到 UITableViewCell 内容视图的 UIView 适合其边界?
也就是说,我创建了一个 NIB 文件(上面有 3 个标签),并希望将其用于 UITableView 中每个单元格的显示。我在 cellForRowAtIndexPath 方法中将基于自定义 NIB 的视图添加到单元格的内容视图中,但是我看到的最终结果是一 (1) 个基于自定义 NIB 的视图(不像我预期的那样在 tableview 中是多个)。
如何安排每个自定义视图整齐地适合每个 UITableViewCell?另请注意,自定义 NIB 视图中的标签有自动换行。
我是否必须为自定义 NIB 视图创建一个框架,但在这种情况下,我不确定如何设置坐标。它会与 UITableViewCell 相关吗?如果自定义视图高度可以由于它的 UILabel 自动换行而改变,那么我假设我必须单独在 UITableView 中手动计算这个高度? (也许我应该去创建动态/自定义视图并放弃使用 InterfaceBuilder/NIB 的概念)
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
UIView *detailedView = [[[NSBundle mainBundle] loadNibNamed:@"DetailedAppointView" owner:self options:nil] objectAtIndex:0];
[cell.contentView addSubview:detailedView]; // DOESN'T SEE TO WORK
return cell;
【问题讨论】:
【参考方案1】:如果我需要实现自定义 UITableViewCell,我就是这样做的。
我为我的自定义单元格 ex 创建了一个 UITableViewCell
的子类。 “我的自定义单元”。然后我为其创建一个 NIB 文件,并在此 NIB 文件中插入 UITableViewCell
并将其类型更改为“MyCustomCell”,并为其提供一个与类名同名的标识符。然后我将所有子视图插入到我的单元格中。全部在 IB 中。
根据我的喜好将我的手机拉皮条后 :-) 我按以下方式使用它:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *CellIdentifier = @"MyCustomCell";
static NSString *CellNib = @"MyCustomCell";
MyCustomCell *cell = (MyCustomCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:CellNib owner:self options:nil];
cell = (MyCustomCell *)[nib objectAtIndex:0];
//Manipulate your custom cell here
return cell;
【讨论】:
谢谢 - 那么这是否意味着我也需要一个自定义 UI 单元 MyCustomCell.m 和 MyCustomCell.h 文件?即目前我只创建了一个 NIB 文件视图并试图让事情只用这个.. 是的,你必须有办法访问添加到自定义 MyCustomCell 中的自定义 UIComponent。因此,创建 MYCustomCell.m 和 MyCustomCell.h 将代码中的对象与 NIB 和 VIOLA 中的对象链接起来!以上是关于如何使添加到 UITableViewCell 内容视图的 UIView 适合其范围?的主要内容,如果未能解决你的问题,请参考以下文章
将imageview添加为uitableviewcell的子视图时如何使imageview可拉伸
如何使 UILabel *not* 将触摸传递给它嵌入的 UITableViewCell?
重新排序单元格时如何在 UITableViewcell 内容视图中添加图像?