0

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原点を正しく調整できませんでした。

みんなの助けに感謝します!

4

1 に答える 1

0

initWithFilterメソッドで次のコードを使用します-

self.tableView.backgroundColor = [UIColor clearColor];
self.tableView.backgroundView = nil;
于 2012-05-14T14:33:57.223 に答える