0

ユーザーが上部にページをめくることができるいくつかの写真があり、下部にアイテム名の詳細がある非常に単純な詳細ビューを作成しています。ただし、次のように、スクロールビューが正しい場所にページングされません。

ここに画像の説明を入力

私のスクロールビューのフレームとそのサブビューのフレームは次のように設定されています:

override func viewDidLoad() {
    super.viewDidLoad()

    self.pictures.frame = CGRectMake(0, 0, self.view.frame.width, self.view.frame.height / CGFloat(2))
    self.pictures.clipsToBounds = false
    let width = pictures.frame.width
    let height = pictures.frame.height



    /*

    let view1 = UIView(frame: CGRectMake(pictures.frame.origin.x, 0, scrollViewWidth, scrollViewHeight))
    let view2 = UIView(frame: CGRectMake(pictures.frame.origin.x + scrollViewWidth, 0, scrollViewWidth, scrollViewHeight))
    let view3 = UIView(frame: CGRectMake(pictures.frame.origin.x + scrollViewWidth * 2, 0, scrollViewWidth, scrollViewHeight))
    let view4 = UIView(frame: CGRectMake(pictures.frame.origin.x + scrollViewWidth * 3, 0, scrollViewWidth, scrollViewHeight))

    */

    for index in 0...2 {
        let frame = CGRectMake(width * CGFloat(index), 0, width, height)
        let view = UIView(frame: frame)
        views.append(view)
        pictures.addSubview(view)
    }

    views[0].backgroundColor = UIColor.redColor()
    views[1].backgroundColor = UIColor.blueColor()
    views[2].backgroundColor = UIColor.orangeColor()


    pictures.delegate = self
    pictures.contentSize = CGSizeMake(width * CGFloat(views.count), height)


}

これにどのように適合できるかについて、誰か提案はありますか? スクロールビューを正しく実装していませんか?

4

2 に答える 2

0

self.view.frame問題は、viewDidLoad()関数内でアクセスしようとしていることです。ビューが呼び出された時点では、まだ適切にレイアウトされていません。ビューのフレームは、ストーリーボードで指定したサイズ、おそらく {0, 0, 600, 600} になります。

解決策:ページ初期化コードをviewWillAppearに配置するか、フレームを直接操作する代わりに自動レイアウトを使用することを検討してください。

于 2016-06-10T13:34:51.553 に答える
0

scrollView では 2 つのページ間にスペースがあるため、幅に +20 を追加する必要があります。したがって、20を追加すると問題が解決する場合があります。

于 2016-06-10T13:59:58.007 に答える