2017-07-26 35 views
2

ui tableviewのセクションヘッダーにプログラムで停止するオフセットを付けることはできますか?UITableViewセクションヘッダー停止位置

したがって、セクションヘッダーは上から100ピクセル停止しますか?

+0

チェックこのhttps://stackoverflow.com/questions/23969587/is-it-possible-to-have-a-fixed-uitableview-header-while-使用するセクション – Rex

答えて

3

私は、これは動作するはずだと思う:

override func scrollViewDidScroll(_ scrollView: UIScrollView) 
{ 
    super.scrollViewDidScroll(scrollView) 
    let inset: CGFloat = 73 
    if scrollView.contentOffset.y < inset && scrollView.contentOffset.y > 0 { 
     scrollView.contentInset = UIEdgeInsets(top: scrollView.contentOffset.y, left: 0, bottom: 0, right: 0) 
    } else { 
     if scrollView.contentOffset.y < 0 { 
      scrollView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0) 
     } else { 
      scrollView.contentInset = UIEdgeInsets(top: inset, left: 0, bottom: 0, right: 0) 
     } 
    } 
} 
+1

ありがとう、それは私の問題のために働く:-) – auryn31

0

UIScrollViewのプロパティは、contentInsetです。テーブルビューのスタイルはUITableViewStyleGrouped (.group in Swift)です。 enter image description here

あなたが移動ヘッダを回避したい場合は、NOにBounce Verticalプロパティを設定します。 これは、このようなUIの私の例です。

+0

コメントのおかげで、UIEdgeInsetsはヘッダーで適切なことを行いますが、コンテンツもオフセットを取得しますが、テーブルビューが透明なビューの背後にあるため、ヘッダーを先に停止したいだけです – auryn31

0

あなたはこの1

CGFloat newViewHeight = 40; 

UIView *newView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.bounds.size.width, newViewHeight)]; 

self.tableView.tableHeaderView = newView; 
self.tableView.contentInset = UIEdgeInsetsMake(-newViewHeight, 0, 0, 0); 

セクションヘッダは今ちょうど任意の正規セルのようにスクロールします試すことができます。

+0

、 - ( – auryn31

関連する問題