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に設定し、赤に設定しました。これが私が得たもので、謎の境界線がテーブルに関連付けられており、周囲のセルではないことを示しています。
これはODDです。Retinaディスプレイで見たところ、「境界線」は実際にはテーブルの後ろにあるオブジェクトの境界線です。
最終更新:
そのアーティファクトは、内側のTableViewItemが埋め込まれているテーブルセルの境界であることが判明しました。セルは、私が行った挿入調整のためにオフセットされましたが、y原点を正しく調整できませんでした。
みんなの助けに感謝します!