###前提・実現したいこと
UIScrollViewで画面上に配置したビューや画像を拡大(縮小)させたあとに、スクロールさせたくないビューを固定させたい。
###発生している問題
以下のサイトを参考に、拡大する前の状態ではビューを固定させることができたのですが、スクロールビュー上のビューや画像を拡大させたあとに固定にしたいビューがうまく固定されません。
拡大をさせた上で、スクロール時はビュー固定をするにはどうしたらよいでしょうか?
スクロールビュー上にスクロール用のビュー、その上にビュー1、ビュー2を置き、ピンチでビュー1ビュー2を拡大(ベースのビューも拡大)、ビュー2だけスクロールさせず固定したい。
1つのスクロールビュー上にビューを2つaddSubviewし、1つをヘッダーのようなイメージで固定させたい。
よろしくお願いいたします。
参考にしたサイト
http://qiita.com/zaziko_github/items/93ae7b7311349396c1b4
class ViewController: UIViewController,UIScrollViewDelegate { //スクロール private var scrView: UIScrollView! private var view1: UIView! private var view2: UIView! private var view3: UIView! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. // ScrollViewを生成 scrView = UIScrollView() scrView.frame = CGRectMake(0,0,500,500); scrView.contentSize = CGSizeMake(1000, 1000) scrView.contentOffset = CGPointMake(0, 0); scrView.minimumZoomScale = 1 scrView.maximumZoomScale = 5 scrView.scrollEnabled = true scrView.decelerationRate = UIScrollViewDecelerationRateNormal scrView.backgroundColor = UIColor.orangeColor() scrView.delegate = self self.view.addSubview(scrView) view1 = UIView(frame: CGRectMake(0,0,300,300)) view1.backgroundColor=UIColor.greenColor() scrView.addSubview(view1) //動かさないビュー view2 = UIView(frame: CGRectMake(0,0,100,30)) view2.backgroundColor=UIColor.blueColor() view1.addSubview(view2) view3 = UIView(frame: CGRectMake(0,30,50,30)) view3.backgroundColor=UIColor.redColor() view1.addSubview(view3) } func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? { scrView.contentSize = CGSizeMake(1000, 1000)//サイズが変わってしまうため return view1 } func scrollViewDidScroll(scrollView: UIScrollView) { let currentPoint = scrollView.contentOffset; view2.frame = CGRectMake(currentPoint.x,currentPoint.y,100,30); } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }
回答1件
あなたの回答
tips
プレビュー