LoginSignup
22
21

More than 5 years have passed since last update.

スクロールビューの上に固定の(スクロールしない)Viewをつける

Last updated at Posted at 2013-12-20

UIScrollViewの上に浮かんでいるような、スクロールしないViewをつける方法です。
英語で検索する時は [Stationing View UIScrollView]とか[Header View UIScrollView]とかpinningなどと検索したら出てきます。
また、appleのWWDC 2011の https://developer.apple.com/videos/wwdc/2011/ 
で「Advanced ScrollView Techniques」としてビデオで紹介されています。

スクロールしたらscrollViewDidScrollでそこの座標を受け取って、固定したいビューに渡します。

まず、固定したいViewを koteiViewという名前にするとしたら、
.hに
@interface ViewController : UIViewController //スクロールビューのデリゲートも
UIScrollView *ScrollView;
UIView *koteiView;

.mのviewDidLoadに
<スクロールビューを作って>
scrollView.delegate = self; //これを忘れずに
<固定ビューを作る>
CGPoint koteiViewCenter = [koteiView center];
として、最初の中心座標を取得します。

-(void)scrollViewDidScroll:(UIScrollView*)scrollView
{
CGPoint contentOffset = [scrollView contentOffset];
CGPoint newCenter = CGPointMake(koteiViewCenter.x + contentOffset.x,
koteiViewCenter.y + contentOffset.y);
[koteiView setCenter:newCenter];
}

22
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
21