2017-06-26 15 views
0

私はUIScrollViewから1ページを他のものより大きく設定したいと思います。最後のページは、UIViewのように同じサイズにする必要がありますか?スクロールビューのページのサイズが異なる

私の未完成のコードです:

self.scrollView.frame = CGRect(x: 0, y: 0, width: self.scrollView.frame.width, height: self.scrollView.frame.height) 
    let scrollviewHeight = self.scrollView.frame.height 
    let scrollviewWidth = self.scrollView.frame.width 

    let viewHeight = self.view.frame.height 
    let viewWidth = self.view.frame.width 

    let imgOne = UIImageView(frame: CGRect(x: 0, y: 0, width: scrollviewWidth, height: scrollviewHeight)) 
    let imgTwo = UIImageView(frame: CGRect(x: scrollviewWidth, y: 0, width: scrollviewWidth, height: scrollviewHeight)) 
    let imgTree = UIImageView(frame: CGRect(x: scrollviewWidth*2, y: 0, width: scrollviewWidth, height: scrollviewHeight)) 
    let feedbackView = UIView(frame: CGRect(x: scrollviewWidth*3, y: 0, width: viewWidth, height: viewHeight)) 

    imgOne.image = UIImage(named: "preview1") 
    imgTwo.image = UIImage(named: "preview2") 
    imgTree.image = UIImage(named: "preview3") 

    self.scrollView.addSubview(imgOne) 
    self.scrollView.addSubview(imgTwo) 
    self.scrollView.addSubview(imgTree) 
    self.scrollView.addSubview(feedbackView) 

    self.addChildFeedBack(feedbackView: feedbackView) 

    self.scrollView.contentSize = CGSize(width: self.scrollView.frame.width * 4, height: self.scrollView.frame.height) 
    self.scrollView.isPagingEnabled = true 

feedbackViewが最大でなければなりません1、です。

+0

そうでもないクリア...あなたは* *これを試したことがありますか?もしそうなら、それは機能しましたか?もしそうなら、あなたは何を求めていますか?それが**仕事しなかったら**何が間違っていたのですか? ***あなたが***を試していない場合は、よく...試してみて、何が起こるか見てみましょう。 – DonMag

+0

私は上記のコードのように試してみましたが、うまくいきませんでした。そのように、feedbackView(ビューと同じサイズでなければならない)は、フルViewのサイズを持ちますが、ScrollViewにあります。だからそれは合わない。 – j10

+0

OK - scrollViewの "ページング"を有効にしています。つまり、自動的に "ページ"を自分自身のサイズで使用します。 4番目のビューを大きくするには、「スクロール可能」にする必要があります。 1つのオプションは 'scrollViewDidScroll'を見て、あなたが' feedbackView'に達した時を検知してから、ページングを無効にすることです。もちろん、それはユーザーが3番目のビューに "スライドバック"できるようになります...だから、どのように*結果を機能させたいのですか?ユーザーエクスペリエンスを何にしたいですか? – DonMag

答えて

1

、これはあなたが望む結果の種類を与える場合、私は知らないが、何かがしようとする...

の代わりにあなたのscrollViewfeedbackViewを追加し、第四サブビューとして別のUIScrollViewを追加し、 そのスクロールビューのサブビューとしてfeedbackViewを追加します。あなたが求めているもの

// your original setup code 
    self.scrollView.frame = CGRect(x: 0, y: 0, width: self.scrollView.frame.width, height: self.scrollView.frame.height) 
    let scrollviewHeight = self.scrollView.frame.height 
    let scrollviewWidth = self.scrollView.frame.width 

    let viewHeight = self.view.frame.height 
    let viewWidth = self.view.frame.width 

    let imgOne = UIImageView(frame: CGRect(x: 0, y: 0, width: scrollviewWidth, height: scrollviewHeight)) 
    let imgTwo = UIImageView(frame: CGRect(x: scrollviewWidth, y: 0, width: scrollviewWidth, height: scrollviewHeight)) 
    let imgTree = UIImageView(frame: CGRect(x: scrollviewWidth*2, y: 0, width: scrollviewWidth, height: scrollviewHeight)) 
    let feedbackView = UIView(frame: CGRect(x: scrollviewWidth*3, y: 0, width: viewWidth, height: viewHeight)) 

    imgOne.image = UIImage(named: "preview1") 
    imgTwo.image = UIImage(named: "preview2") 
    imgTree.image = UIImage(named: "preview3") 

    self.scrollView.addSubview(imgOne) 
    self.scrollView.addSubview(imgTwo) 
    self.scrollView.addSubview(imgTree) 

    // don't add feedbackView to scrollView 
    // self.scrollView.addSubview(feedbackView) 

    // instead, create another scroll view, 
    // add feedbackView to that scroll view, 
    // and add that scroll view as the 4th "page" in scrollView 

    let fbScrollView = UIScrollView(frame: CGRect(x: scrollviewWidth*3, y: 0, width: scrollviewWidth, height: scrollviewHeight)) 

    // just so we can see where it is during development 
    fbScrollView.backgroundColor = .purple 

    // feedbackView will now be in its own scroll view, so 
    // set its origin to 0,0 
    feedbackView.frame.origin = CGPoint.zero 

    fbScrollView.addSubview(feedbackView) 
    fbScrollView.contentSize = feedbackView.frame.size 

    // add the new scroll view to the "paging" scrollView 
    self.scrollView.addSubview(fbScrollView) 

    // and the rest of your setup 
    self.addChildFeedBack(feedbackView: feedbackView) 

    self.scrollView.contentSize = CGSize(width: self.scrollView.frame.width * 4, height: self.scrollView.frame.height) 
    self.scrollView.isPagingEnabled = true 
関連する問題