作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的应用程序中,我有很多带有各种 ScrollView (表格、集合等)的 VC。所有这些都出现在 NavigationController 中,我使用了 .automaticallyadjustsscrollviewinsets
VC 的属性,以防止内容进入 NavigationBar。它在 iOS9 之前运行良好。
我昨天将我的测试 iPhone 更新到 iOS9,并注意到所有 ScrollView 现在都没有正确的插入。我已将 XCode 更新到最新版本 (7.0) 并重建应用程序 - 无效。我已经检查了另一台仍在运行 iOS8.x 的设备 - 插图工作正常。我查看了 iOS9 sdk 更新日志,没有找到与我的问题相关的任何内容。这是错误还是新行为?还有其他人有这个问题吗?可能的解决方案?
更新 1
我想出了快速修复:
if (__iOS_9_OR_GREATER__) {
CGFloat topInset = 20;
if (self.navigationController) {
topInset += self.navigationController.navigationBar.bounds.size.height;
}
UIEdgeInsets insets = UIEdgeInsetsMake(topInset, 0, 0, 0);
self.collectionView.contentInset = insets;
self.collectionView.scrollIndicatorInsets = insets;
}
__iOS_9_OR_GREATER__
的评论中的问题.可能不是最有效的解决方案,但可以完成工作。
#import <Foundation/Foundation.h>
#define __iOS_9_OR_GREATER__ [NKOSVersionCheck isMajorOSVersionAtLeast:9]
@interface NKOSVersionCheck : NSObject
+ (BOOL)isMajorOSVersionAtLeast:(NSUInteger)version;
@end
#import "NKOSVersionCheck.h"
@implementation NKOSVersionCheck
NSOperatingSystemVersion _majorOSVersion(int version) {
NSOperatingSystemVersion iOS_x;
iOS_x.majorVersion = version;
iOS_x.minorVersion = 0;
iOS_x.patchVersion = 0;
return iOS_x;
}
+ (BOOL)isMajorOSVersionAtLeast:(NSUInteger)version {
return [[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion:_majorOSVersion(9)];
}
@end
最佳答案
从 iOS9 automaticallyadjustsscrollviewinsets
不会改变UIScrollView
的 contentInsets
如果它以编程方式创建。
UITableViewController
用于自动调整。 automaticallyadjustsscrollviewinsets
并自行调整插图。 关于uikit - AutomaticAdjustsScrollViewInsets 在 iOS9 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32650109/
在我的应用程序中,我有很多带有各种 ScrollView (表格、集合等)的 VC。所有这些都出现在 NavigationController 中,我使用了 .automaticallyadjusts
我是一名优秀的程序员,十分优秀!