iOS 11 下 UICollectionView 的HeaderView 遮挡滚动条

来源:互联网 发布:数据库应用系统设计 编辑:程序博客网 时间:2024/05/18 03:53

这个问题在之前的 iOS 10 上是没有的,iOS 11 新出之后才出现。在使用了- collectionView: viewForSupplementaryElementOfKind: atIndexPath:的 UICollectionView 页面中,滑动页面的时候滚动条会被 HeaderView 遮挡.

修改前的样子:

////  CustomCollectionReusableView.m//  EMall////  Created by YJHou on 2017/9/16.//  Copyright © 2017年 stackhou . All rights reserved.//#import "CustomCollectionReusableView.h"@interface CustomCollectionReusableView ()@property (nonatomic, strong) UILabel *showLabel; /**< 显示控件 */@end@implementation CustomCollectionReusableView- (void)layoutSubviews {    [super layoutSubviews];    [self _setUpSubViews];}- (void)_setUpSubViews {    [self addSubview:self.showLabel];}#pragma mark - Lazy- (UILabel *)showLabel{        if (!_showLabel) {        _showLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 20, 120, self.frame.size.height)];        _showLabel.font = [UIFont systemFontOfSize:13];        _showLabel.textAlignment = NSTextAlignmentLeft;        _showLabel.backgroundColor = [UIColor clearColor];        _showLabel.textColor = [UIColor redColor];    }    return _showLabel;}@end

修复完成后

////  CustomCollectionReusableView.m//  EMall////  Created by YJHou on 2017/9/16.//  Copyright © 2017年 stackhou . All rights reserved.//#import "CustomCollectionReusableView.h"#ifdef __IPHONE_11_0@interface CustomLayer : CALayer@end#endif@interface CustomCollectionReusableView ()@property (nonatomic, strong) UILabel *showLabel; /**< 显示控件 */@end#ifdef __IPHONE_11_0@implementation CustomLayer- (CGFloat) zPosition {    return 0;}@end#endif@implementation CustomCollectionReusableView- (void)layoutSubviews {    [super layoutSubviews];    [self _setUpSubViews];}- (void)_setUpSubViews {    [self addSubview:self.showLabel];}#pragma mark - Lazy- (UILabel *)showLabel{        if (!_showLabel) {        _showLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 20, 120, self.frame.size.height)];        _showLabel.font = [UIFont systemFontOfSize:13];        _showLabel.textAlignment = NSTextAlignmentLeft;        _showLabel.backgroundColor = [UIColor clearColor];        _showLabel.textColor = [UIColor redColor];    }    return _showLabel;}#ifdef __IPHONE_11_0+ (Class)layerClass {    return [CustomLayer class];}#endif@end
阅读全文
0 0
原创粉丝点击