2017-03-01 14 views
0

任何人都可以給我提示如何設置框架scrollview如果方向改變?現在這是我正在做的顯示圖像。任何幫助將是有益的。如何設置框架,如果方向改變?

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

你是good.Thanks爲help.it worked.but我用這個方法「FUNC willRotate (toInterfaceOrientation:UIInterfaceOrientation,duration:TimeInterval){}「我很好奇爲什麼它在這個方法中不起作用。 –

+0

@JayPatel事實上,許多委託方法從'ios 9'棄用,因爲我認爲觸發通知是最新的方法。我記得有更多的方法..'viewWillTransit'和'viewwillOrientation',但現在都已棄用。 –