Ios 快速滚动查看全屏时,横向

Ios 快速滚动查看全屏时,横向,ios,swift,scroll,landscape-portrait,Ios,Swift,Scroll,Landscape Portrait,当设备处于横向而非纵向时,我试图让滚动视图占据整个屏幕。这是我在纵向模式下的视图。我想让它像youtube应用程序处理视频一样工作。任何示例代码都会非常有用 这就是我设置滚动视图的方式 DispatchQueue.main.async(execute: { () -> Void in let imgURL = NSURL(string: self.property[i].image) let data = NSData(contentsOf

当设备处于横向而非纵向时,我试图让滚动视图占据整个屏幕。这是我在纵向模式下的视图。我想让它像youtube应用程序处理视频一样工作。任何示例代码都会非常有用

这就是我设置滚动视图的方式

DispatchQueue.main.async(execute: { () -> Void in
            let imgURL = NSURL(string: self.property[i].image)
            let data = NSData(contentsOf: (imgURL as URL?)!)
            let imageView = UIImageView()
            imageView.image = UIImage(data: data! as Data)
            let xPosition = self.view.frame.width * CGFloat(i)
            imageView.frame = CGRect(x: xPosition, y: 0, width: self.imageScrollView.frame.width, height: self.imageScrollView.frame.height)

            self.imageScrollView.contentSize.width = self.imageScrollView.frame.width * CGFloat(i + 1)
            self.imageScrollView.addSubview(imageView)
        }) //End DispatchQueue

是否对此视图使用自动布局?如果是这样,您可以在方向更改时根据需要更改scrollview的常量(您可以使用
UIDeviceOrientationIDChangeNotification
),或者如果您只是在代码中设置帧,请相应地进行帧调整

将显示视图中的注册通知

[[NSNotificationCenter defaultCenter] addObserver:self  selector:@selector(orientationChanged:)    name:UIDeviceOrientationDidChangeNotification  object:nil];
此方法将在方向更改时被调用

-

别忘了移除观察者

-(void)viewDidDisappear:(BOOL)animated{
   [super viewDidDisappear:animated];
   [[NSNotificationCenter defaultCenter]removeObserver:self name:UIDeviceOrientationDidChangeNotification object:nil];
} 
-(void)viewDidDisappear:(BOOL)animated{
   [super viewDidDisappear:animated];
   [[NSNotificationCenter defaultCenter]removeObserver:self name:UIDeviceOrientationDidChangeNotification object:nil];
}