我在 IO 应用程序中有以下层次结构:
. TTTableViewController, with the following elements
.. @""
.. TTTableCaptionItem
.. @""
.. TTTableSubtitleItemCell
.. @""
.. TTTableTextItem
.. @""
.. (other cells)
.. TTTableViewItem
... TTTableViewController
这显示了嵌入式 TTTableViewController 周围的“神秘边界”,我似乎无法摆脱。
嵌入式 TableViewItem 的初始化完全是普通的:
@implementation DetailCommentsItemCell
- (id) initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
if (self = [super initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:reuseIdentifier])
{
}
return self;
}
- (void)setObject:(id)object {
_item = object;
[self.contentView addSubview:[[object commentsViewController] tableView]];
}
(“commentsViewController”是嵌入的 TTTableViewController)
有谁知道这些边界是什么以及如何摆脱它们?
根据要求,这是该表的设置代码:
- (id)initWithFilter:(ObjectId)parameter_filter detailViewController:(DetailViewController *)dvp;
{
DDLogInfo(@"CommentsViewController::initWithFilter parameter_filter %llu",
parameter_filter);
if (self = [super initWithStyle:UITableViewStyleGrouped])
{
self.tableView.clipsToBounds = YES;
self.variableHeightRows = YES;
}
return self;
}
更新:
在@rishi 的优秀建议中,我添加了
self.tableView.backgroundColor = [UIColor clearColor];
self.tableView.backgroundView = nil;
这好多了,但我还有一个神器。见下文:
另一个更新:我添加了以下代码:
self.tableView.layer.borderColor = [[UIColor clearColor] CGColor];
self.tableView.layer.backgroundColor = [[UIColor clearColor] CGColor];
现在看起来像这样:
似乎它是罪魁祸首的层 - 但我无法摆脱边界 - 如果是这样的话。
作为一个实验,我将包含单元格的图层的边框设置为 2 和红色。这是我得到的,它告诉我神秘边框与表格相关联,而不是与周围的单元格相关联:
这很奇怪。我在 Retina 显示器中查看它,“边框”实际上是表格后面的某个对象的边框。
最后更新:
该工件原来是嵌入了内部 TableViewItem 的表格单元格的边框。由于我所做的插入调整,单元格被偏移,但我未能正确调整 y 原点。
感谢大家的帮助!