iOS 11 下 UICollectionView 出现滚动条被 HeaderView 遮挡的问题
2019独角兽企业重金招聘Python工程师标准>>>
iOS 11 下 UICollectionView 出现滚动条被 HeaderView 遮挡的问题
在使用了
- collectionView: viewForSupplementaryElementOfKind: atIndexPath:
的 UICollectionView 页面中,滑动页面的时候滚动条会被 HeaderView 遮挡。导致滚动条看起来是断断续续的。
问题页面如下图所示(查看滚动条):
以上问题具体是否与使用了 - collectionView: viewForSupplementaryElementOfKind: atIndexPath:
有关目前还不确定,待验证。
这个问题在之前的 iOS 10 上是没有的,iOS 11 新出之后才出现。经过在 stackoverflow 上查找之后找到解决办法。https://stackoverflow.com/questions/46694144/scrollbar-incorrectly-appears-underneath-uicollectionview-section-header
stackoverflow 中提供的是 swift 中的解决办法,我自己则使用的是 Objective-C。
提示:解决这个问题只是更改了继承自
UICollectionReusableView
的自定义 HeaderView 类文件,所以这里只贴该自定义 HeaderView 的代码。
先看看在修复问题之前的 CustomHeaderView 类文件代码
// CustomHeaderView.h#import <UIKit/UIKit.h>extern NSString *const CustomHeaderViewReuseIdentifier;@interface CustomHeaderView : UICollectionReusableView@property (nonatomic, strong) UILabel *titleLabel;@end// CustomHeaderView.m
#import "CustomHeaderView.h"NSString *const CustomHeaderViewReuseIdentifier = @"CustomHeaderView";@implementation CustomHeaderView- (void)layoutSubviews {[super layoutSubviews];[self createSubViews];
}- (void)createSubViews {_titleLabel = [[UILabel alloc] init];_titleLabel.textColor = [UIColor blackColor];CGFloat height = self.frame.size.height;_titleLabel.frame = CGRectMake(15, 0, 100, height);[self addSubview:_titleLabel];
}@end
当为以上代码的时候,APP 在 iOS11 上运行就会出现上图的问题。 根据 stackoverflow 的提示更改代码之后,该问题便被修复。
以下为修复之后的CustomHeaderView类文件代码
// CustomHeaderView.h#import <UIKit/UIKit.h>extern NSString *const CustomHeaderViewReuseIdentifier;#ifdef __IPHONE_11_0
@interface CustomLayer : CALayer@end
#endif@interface CustomHeaderView : UICollectionReusableView@property (nonatomic, strong) UILabel *titleLabel;@end// CustomHeaderView.m
#import "CustomHeaderView.h"NSString *const CustomHeaderViewReuseIdentifier = @"CustomHeaderView";#ifdef __IPHONE_11_0
@implementation CustomLayer- (CGFloat) zPosition {return 0;
}@end
#endif@implementation CustomHeaderView- (void)layoutSubviews {[super layoutSubviews];[self createSubViews];
}- (void)createSubViews {_titleLabel = [[UILabel alloc] init];_titleLabel.textColor = [UIColor blackColor];CGFloat height = self.frame.size.height;_titleLabel.frame = CGRectMake(15, 0, 100, height);[self addSubview:_titleLabel];
}#ifdef __IPHONE_11_0
+ (Class)layerClass {return [CustomLayer class];
}
#endif@end
以上代码相对于之前有问题的代码只是多了 #ifdef __IPHONE_11_0 ... #endif
之间的内容,使用 #ifdef __IPHONE_11_0 ... #endif
母的是防止更改之后的代码在 iOS 10 上出现问题,从而确保更改只是针对 iOS11 及之后的版本有效。
更改之后的效果图如下所示:
转载于:https://my.oschina.net/yitongtong/blog/1554404
iOS 11 下 UICollectionView 出现滚动条被 HeaderView 遮挡的问题相关推荐
- 微信小程序ios系统下viedo视频全屏无法遮挡fixed事件的解决办法
之前博主遇到过一个巨巨巨大的坑,困扰了我很久都没有找到原因,其实现在我也没有找到具体的原因,如果有同学知道的话可以给我留言哦,先po一下具体遇到的bug 当进入全屏的时候,底部fixed固定的tab栏 ...
- iOS 11 安全区域适配总结
2019独角兽企业重金招聘Python工程师标准>>> 导语:本文主要是对iOS 11下APP中tableView内容下移20pt或下移64pt的问题适配的一个总结.内容包括五个部分 ...
- iOS 11中tableView下移问题
本文主要是对iOS 11下APP中tableView内容下移20pt或下移64pt的问题适配的一个总结.内容包括五个部分:问题的原因分析.adjustContentInset属性的计算方式.什么情况下 ...
- 要不要升级先看这篇!iOS 11 最全试玩体验
苹果在今年的 WWDC 上,正式公布了 iOS 10.macOS High Sierra 以及 watchOS 4 等操作系统.这次 WWDC 也是猛料最多的一次,除了全新 iMac Pro 外,苹果 ...
- iOS 11 UICollectionView顶部出现白色间隔的问题
iOS11 UICollectionView顶到屏幕顶端会出现一个20高度的白色间隔,是由于UICollectionView的自动调整功能为状态栏留出的位置 只需在创建UICollectionView ...
- uniapp+uView1.0做H5应用的时候,ios系统右侧会显示滚动条,如何隐藏ios下的滚动条
跟目录下的App.vue文件,不能全局写css样式,因为,安卓下会有问题,所以用js动态加载css代码片段的方式 直接上代码 let platform=uni.getSystemInfoSync(). ...
- iOS 11 适配集锦
安全区域的适配 用Xcode 9 创建storyboard或者xib时,最低版本支持iOS 8时会报: Safe Area Layout Guide before iOS 9.0 如图: 原因:在iO ...
- 适配iOS 11和iPhone X——导航栏、UITableView
每年的WWDC大会都激动和紧张好一段时间.激动的是期待苹果的新产品带来的那些黑科技,尤其今年的iPhone10周年纪念款iPhone X.紧张的当然是iOS.Swift和Xcode的升级,又要加班了( ...
- ios 11及iPhone X的那些事
前段时间苹果发布新产品,iPhone8.iPhone 8 plus.iPhoneX,同时也发布了iOS 11,之前一直吐槽Android的适配,现在也第一次体会到了面向机型适配的感受了.反正苹果开心了 ...
最新文章
- 【自然语言处理】N-最短路径法进行中文分词
- Metasploit命令info使用技巧
- BZOJ1036: [ZJOI2008]树的统计Count
- 《Android进阶之光》--多线程编程
- vb编程的好帮手--资源文件
- javascript常用判断写法
- leetcode中使用c++需要注意的点以及各类容器的初始化、常用成员函数
- Objective-C优缺点
- 网际控制报文协议ICMP(Internet Control Message Protocol)(详解)
- 星形和雪花模型_数据仓库多维数据模型设计
- HTML标签(持续更新)
- C#知识点总结系列:2、C#中IDisposable和IEnumerable、IEnumerator
- python commands执行不连续_[Python] 利用commands模块执行Linux shell命令
- mysql中to_char()和str_to_date()函数
- html+input+js双击,JS双击变input框批量修改内容
- excel基础操作(1)
- 【渗透测试】锐捷网络-EWEB网管系统易网关批量GetShell
- Linux ps命令详解,Linux查看进程
- Windows10下安装point-cloud-annotation-tool点云标注工具——吐血之路总结
- 两个umijs/max项目使用微前端简单示例
热门文章
- springcloud项目的启动顺序_Spring Cloud微服务项目完整示例,含注册中心,网关,断路器等等...
- jquery监听向上向下滑动,滑动执行操作
- 记录:希尔排序思路分析
- WordPress主题modown6.2+erphpdown11.7
- 个人Typech情侣主题Cupid模板
- Java23种设计模式之概念篇
- KOHA IRC 聊天室
- 悟透JavaScript
- Mycat配置文件schema.xml的详解
- 机器学习速成课程 | 练习 | Google Development——编程练习:(TensorFlow) Hello World