2017-03-01 4 views
0

誰かが私に向きを変えたら、スクロールビューのフレームを設定する方法を教えてもらえますか?今、私は画像を表示するために何をしていますか。向きが変わる場合のフレームの設定方法は?

mainScrollView.frame = self.view.frame 

    for i in 0 ..< images.count { 

     let imageView = UIImageView() 
     imageView.image = images[i].image 
     imageView.contentMode = .scaleAspectFit 
     let xPosition = self.view.frame.width * CGFloat(i) 
     imageView.frame = CGRect(x: xPosition, y: 0, width: self.mainScrollView.frame.width, height: self.mainScrollView.frame.height) 
     mainScrollView.contentSize.width = mainScrollView.frame.width * CGFloat(i + 1) 
     mainScrollView.addSubview(imageView) 

    } 
    if let index = images.index(where: { $0.imageName == selectedImageName }){ 
     let position = CGPoint(x: (mainScrollView.frame.width * CGFloat(index)), y: 0) 
     mainScrollView.setContentOffset(position, animated: true) 
    } 

答えて

1

トリガーVDL方法

NotificationCenter.default.addObserver(self, selector: #selector(ViewController.rotated), name: NSNotification.Name.UIDeviceOrientationDidChange, object: nil) 

で、この通知および方法

func rotated() { 
    if(UIDeviceOrientationIsLandscape(UIDevice.current.orientation)) 
    { 
     print("landscape") 
    } 

    if(UIDeviceOrientationIsPortrait(UIDevice.current.orientation)) 
    { 
     print("Portrait") 
    } 
} 
+0

の下にこれを実装するあなたは「私はこの方法を使用worked.but help.itためgood.ThanksあるFUNC willRotate (toInterfaceOrientation:UIInterfaceOrientation、duration:TimeInterval){} "なぜこのメソッドでは機能しないのか不思議です。 –

+0

@JayPatel実際には、多くのデリゲートメソッドは 'ios 9'から非難されていますので、トリガー通知は最新のアプローチです。いくつかの方法があります。私は覚えているように 'viewWillTransit'と' viewwillOrientation'ですが、現在は廃止予定です。 –

関連する問題