在 iPhone X 及以上的 UIScrollView 中没有 UIImage 的全屏
No fullscreen with UIImage within UIScrollView with iPhone X and up
在 iPhone X 及更高版本的 UIScrollView 中,UIImage 无法全屏显示。与 iPhone 8 和 +.
完美配合
来自 Xcode 的屏幕截图。
'UIImage is the color red.
UIScrollView is the color green.
UIScrollView 和UIImage 都对SuperView 有约束。但是使用 iPhone X 时,UIImage 不会与 SuperView 对齐。如果我将 UIImage 直接移动到视图,那么它看起来没问题,但随后我的缩放选项停止工作。
这是缩放选项的代码。
func updateZoomFor(size: CGSize) {
let widthScale = size.width / image2.bounds.width
let heightScale = size.height / image2.bounds.height
let scale = min(widthScale,heightScale)
scrollView2.minimumZoomScale = scale
scrollView2.minimumZoomScale = 1.0
scrollView2.maximumZoomScale = 5.0
scrollView2.contentSize = .init(width: 2000, height: 2000)
}
func viewForZooming(in scrollView2: UIScrollView) -> UIView? {
return image2
}
这是隐藏状态栏和主页按钮的代码。
override var prefersStatusBarHidden: Bool {
return true
}
override var prefersHomeIndicatorAutoHidden: Bool {
return true
}
我希望 UIScrollView 和 UIImage 在任何 Iphone 纵向和横向模式下全屏工作。
1.- 设置你的滚动视图:
let scrollView: UIScrollView = {
let scrollView = UIScrollView()
scrollView.translatesAutoresizingMaskIntoConstraints = false;
scrollView.backgroundColor = .clear
return scrollView
}()
2.- 添加到子视图:
private func setSubviews() {
self.addSubview(scrollView)
}
3.- 将所有内容添加到 ScrollView-Subview
示例:
self.addSubview(scrollView)
self.scrollView.addSubview(screenIcon)
self.scrollView.addSubview(screenTitle)
4.- 设置约束:
NSLayoutConstraint.activate([
scrollView.topAnchor.constraint(equalTo: self.topAnchor, constant: 0),
scrollView.leadingAnchor.constraint(equalTo: self.leadingAnchor, constant: 0),
scrollView.trailingAnchor.constraint(equalTo: self.trailingAnchor, constant: 0),
scrollView.heightAnchor.constraint(equalTo: self.heightAnchor, multiplier: 2),
])
在 iPhone X 及更高版本的 UIScrollView 中,UIImage 无法全屏显示。与 iPhone 8 和 +.
完美配合来自 Xcode 的屏幕截图。 'UIImage is the color red. UIScrollView is the color green.
UIScrollView 和UIImage 都对SuperView 有约束。但是使用 iPhone X 时,UIImage 不会与 SuperView 对齐。如果我将 UIImage 直接移动到视图,那么它看起来没问题,但随后我的缩放选项停止工作。
这是缩放选项的代码。
func updateZoomFor(size: CGSize) {
let widthScale = size.width / image2.bounds.width
let heightScale = size.height / image2.bounds.height
let scale = min(widthScale,heightScale)
scrollView2.minimumZoomScale = scale
scrollView2.minimumZoomScale = 1.0
scrollView2.maximumZoomScale = 5.0
scrollView2.contentSize = .init(width: 2000, height: 2000)
}
func viewForZooming(in scrollView2: UIScrollView) -> UIView? {
return image2
}
这是隐藏状态栏和主页按钮的代码。
override var prefersStatusBarHidden: Bool {
return true
}
override var prefersHomeIndicatorAutoHidden: Bool {
return true
}
我希望 UIScrollView 和 UIImage 在任何 Iphone 纵向和横向模式下全屏工作。
1.- 设置你的滚动视图:
let scrollView: UIScrollView = {
let scrollView = UIScrollView()
scrollView.translatesAutoresizingMaskIntoConstraints = false;
scrollView.backgroundColor = .clear
return scrollView
}()
2.- 添加到子视图:
private func setSubviews() {
self.addSubview(scrollView)
}
3.- 将所有内容添加到 ScrollView-Subview 示例:
self.addSubview(scrollView)
self.scrollView.addSubview(screenIcon)
self.scrollView.addSubview(screenTitle)
4.- 设置约束:
NSLayoutConstraint.activate([
scrollView.topAnchor.constraint(equalTo: self.topAnchor, constant: 0),
scrollView.leadingAnchor.constraint(equalTo: self.leadingAnchor, constant: 0),
scrollView.trailingAnchor.constraint(equalTo: self.trailingAnchor, constant: 0),
scrollView.heightAnchor.constraint(equalTo: self.heightAnchor, multiplier: 2),
])