gpt4 book ai didi

ios - 横向时快速滚动查看全屏

转载 作者:行者123 更新时间:2023-11-28 15:37:58 25 4
gpt4 key购买 nike

当设备处于横向而非纵向时,我试图让 ScrollView 占据整个屏幕这是我的纵向模态视图。我希望它能像 youtube 应用程序处理视频一样工作。任何示例代码都会非常有帮助

enter image description here

这就是我设置 ScrollView 的方式

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

最佳答案

您是否为此 View 使用了自动布局?如果是这样,您可以在方向更改时根据需要更改 ScrollView 的约束(您可以使用 UIDeviceOrientationDidChangeNotification),或者如果您只是在代码中设置框架,则相应地调整框架

在您的 View 中注册通知将出现

[[NSNotificationCenter defaultCenter] addObserver:self  selector:@selector(orientationChanged:)    name:UIDeviceOrientationDidChangeNotification  object:nil];

这个方法会随着方向的改变而被调用

-

 (void)orientationChanged:(NSNotification *)notification{

switch ([[UIApplication sharedApplication] statusBarOrientation])
{
case UIInterfaceOrientationPortrait:
case UIInterfaceOrientationPortraitUpsideDown:
{
//set frame/ constarints for portrait
}

break;
case UIInterfaceOrientationLandscapeLeft:
case UIInterfaceOrientationLandscapeRight:
{
//set frame/ constarints for landscape
}
break;
case UIInterfaceOrientationUnknown:break;
}

}

不要忘记移除观察者

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

关于ios - 横向时快速滚动查看全屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44094752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com