关于如何将 UIview 作为子视图添加到 UITableCell 的问题

Posted

技术标签:

【中文标题】关于如何将 UIview 作为子视图添加到 UITableCell 的问题【英文标题】:Question on how to add a UIview as a subview to a UITableCell 【发布时间】:2010-07-07 23:50:20 【问题描述】:

我有一个关于如何将 UIView 添加到 UITableViewCell 的问题。

在我的学习项目中,我有一个 UITableViewController (TableTestViewController、一个 UITabelViewCell.xib (MainTabelCell.xib) 和一个 UIView (InnerTableView)。 我的目标是在 UITableView 中显示 MainTableCell,在这个 MainTabelCell 中显示 InnerTabelView,但我只设法在表格中显示单元格。

TableTestViewController.h:

#import <UIKit/UIKit.h>
#import "InnerTableView.h"

@interface TableTestViewController : UITableViewController 

    UITableView *mainTable;
    UITableViewCell *nibLoadedCell;
    InnerTableView *innerView;


@property(nonatomic, retain) IBOutlet UITableView *mainTable;
@property(nonatomic, retain) IBOutlet UITableViewCell *nibLoadedCell;
@property(nonatomic, retain) InnerTableView *innerView;

@end

TableTestViewController.m:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) 
        [[NSBundle mainBundle] loadNibNamed:@"MainTableCell"
            owner:self options:NULL]; 
        cell = nibLoadedCell;
    

    // Configure the cell.
    innerView = [[UIViewController alloc] init];
    [cell addSubview: innerView.view];
    return cell;

有人知道为什么innerView 不会显示在TabelViewCell 中吗?我在这里错过了什么?我仍在学习所有这些东西,但 5 小时后我在我的书中找不到任何线索。希望这不是一个愚蠢的问题:)

谢谢

CaptnCrash

【问题讨论】:

确保插座也配置正确。在 .xib、nib 或故事板上检查文件的所有者属性 【参考方案1】:

你应该使用 [cell.contentView addSubview:yourView];

顺便说一句,在您的代码中,您的 innerView 未正确释放。

【讨论】:

如果使用ARC如何释放innerView

以上是关于关于如何将 UIview 作为子视图添加到 UITableCell 的问题的主要内容,如果未能解决你的问题,请参考以下文章

iOS - Interface Builder - 将元素作为子视图添加到 UIView

将 UIImage 视图作为子视图添加到 UIView 的实例

如何管理添加到 UIView 中的子视图?

将 UIView 作为子视图添加到 UIButton 并将其置于前面无法正常工作

如何将事件发送到我的(子)UIView?

如何将数据传递到 UIView 侧的嵌入式 UIViewController - Swift 5