gpt4 book ai didi

ios - iPhone X 横向的 UICollectionView

转载 作者:IT王子 更新时间:2023-10-29 07:43:06 24 4
gpt4 key购买 nike

当 iPhone X 横向使用时,您应该检查 safeAreaInsets 以在左侧和右侧制作适当大的排水沟。 UITableView 具有新的 insetsContentViewsToSafeArea 属性(默认为 true)以自动将单元格内容保留在安全区域中。

令我惊讶的是 UICollectionView 似乎没有任何类似的东西。我希望对于垂直滚动的 Collection View ,在横向时左侧和右侧将插入到安全区域(相反,如果需要纵向滚动,则水平滚动的 Collection View 将插入)。

确保此行为的最简单方法似乎是添加到 Collection View Controller :

- (void)viewSafeAreaInsetsDidChange {
[super viewSafeAreaInsetsDidChange];
UIEdgeInsets contentInset = self.collectionView.contentInset;
contentInset.left = self.view.safeAreaInsets.left;
contentInset.right = self.view.safeAreaInsets.right;
self.collectionView.contentInset = contentInset;
}

...假设 contentInset.left/right 通常为零。

(注意:是的,对于 UICollectionViewController,它需要是 self.view.safeAreaInsets;在调用它时,对 safeAreaInsets 的更改奇怪地没有尚未传播到 self.collectionView)

我错过了什么吗?该样板文件足够简单,但现在对于接触屏幕边缘的每个 Collection View 来说实际上是必需的。 Apple 没有提供默认启用此功能的功能,这似乎真的很奇怪。

最佳答案

同样的问题。这对我有用:

override func viewDidLoad() {
if #available(iOS 11.0, *) {
collectionView?.contentInsetAdjustmentBehavior = .always
}
}

documentation对于 .always 枚举案例来说:

Always include the safe area insets in the content adjustment.

此解决方案在手机旋转的情况下也能正常工作。

关于ios - iPhone X 横向的 UICollectionView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46258444/

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