UIScrollView に背景画像を設定する
#import <UIKit/UIKit.h> @interface UIScrollViewWithBGImage : UIViewController <UIScrollViewDelegate> { UIImageView *backgroundImageView; } @property (nonatomic, retain) UIScrollView *scrollView; @end
上のようなヘッダーにおいて、scrollViewプロパティに背景画像を追加する事を考える。
その1
簡単なのは、viewをaddした後に、次のように呼ぶこと。
[self.view bringSubviewToFront:_scrollView]; for(UIView *subview in [_scrollView subviews]) { [_scrollView bringSubviewToFront:subview]; }
ただこの方法だと、viewがたくさんあったときに、最後にほぼ全てのviewのz-indexを調整しなくてはならなくなる。
ということで
その2
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view./* initialize */ [self.view addSubview:_scrollView]; [_scrollView addSubview:backgroundImageView]; } #pragma mark - #pragma mark UIScrollView delegate -(void)scrollViewDidScroll:(UIScrollView *)scrollView { CGRect scrolledRect; scrolledRect.origin = CGPointMake(_scrollView.contentOffset.x, _scrollView.contentOffset.y); scrolledRect.size = backgroundImageView.frame.size; backgroundImageView.frame = scrolledRect; }
こんな感じで実装する。scrollViewのdelegateを使って、bgImageViewのoriginを逐一変更する。
どこにでもあるコードだと思うけども、一応。
今度UIScrollViewのプロパティに関してまとめるかも?
いろいろ忘れるときがあるので。