2017-09-14 8 views
1

セクションビューのセクションヘッダーをセクションの最初のセルに重ねるようにプッシュダウンしようとしています。これは、プロファイル画像が左側のリンクアプリに表示される方法と同様です。UITableviewのセクションヘッダーをオーバーラップセルにする

linkedin app screenshot

したがって、プロフィール画像が重なっている場合は白ビューは、セクションの最初の行であり、プロフィール画像は、セクションヘッダです。

フレームのx座標を負の値に変更して、ヘッダーのサイズを混乱させようとしましたが、無駄です。

答えて

0

viewForHeaderInSection()にカスタムビューを作成します。このビューでは、ヘッダーの形状を定義することができます。あなたの場合は、四角形の下の中央を丸で囲みます。そして、そのビューにコンテンツを設定します。

透明にするビューのアルファ値をそのカスタムビューで0に変更します。ヘッダーの望ましくない部分は画面に表示されません。

1

私はLinkedIn Appのプロファイルビューを見ていました。同様のものを作成すると、すべてのプロファイル情報をtableHeaderViewに配置します。そうヘッダは、以下から成るであろう:

  • UIImageView(背景画像)
  • のUIView(プロファイル 情報を含む)
  • UIImageView(ユーザープロフィール画像)

enter image description here

UITableViewはUIScrollViewのサブクラスなので、デリゲートメソッドscrollViewDidScrollを使用して背景イメージをアニメートできます。テーブルビューがスクロールしている間、背景画像の位置を調整できます

@property (weak, nonatomic) IBOutlet UIImageView *backgroundImage; 

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    // 64 is the height of the navigation bar. 
    // 110 is the maximum distance I want to move the image down before it starts to move with the table. 
    CGFloat offset = MIN(scrollView.contentOffset.y + 64, 110); 
    self.backgroundImage.transform = CGAffineTransformMakeTranslation(0, offset); 
} 
+0

ありがとう@Ryan!しかし、私は理想的には、トップビューだけでなく、テーブルビューのすべてのセルに対してこのエフェクトを複製したいと思っていました。今のところ、私はちょうどセルの中にラッパービューを作成し、セルを透明にして、セルの範囲内でエフェクトを作成しました。回避策のような感じですが、セクションヘッダーを使用して達成できるかどうかは面白いでしょう。 – mike