自定制 UITableViewHeaderFooterView 加载不上视图问题
来源:互联网 发布:广发手机证券交易软件 编辑:程序博客网 时间:2024/06/05 06:57
用到了类似下图的Header日期加更多的效果,
自定制了一个后发现上面的视图没有加载上去,找了一会儿,终于发现了原因,因为我在用UICollectionReusableView的头视图视图时,我用了下面的方法;
- (instancetype)initWithFrame:(CGRect)frame
{
self = [superinitWithFrame:frame];
if (self) {
self.backgroundColor = [UIColorclearColor];
self.userInteractionEnabled =YES;
UITapGestureRecognizer *tap = [[UITapGestureRecognizeralloc] initWithTarget:selfaction:@selector(didTapSectionHeader:)];
[selfaddGestureRecognizer:tap];
[selfaddSubview:self.sep];
[selfaddSubview:self.addTime];
[selfaddSubview:self.more];
[selfaddSubview:self.rightArrow];
[selflayoutSubviewsContraits];
}
returnself;
}
,所以我在用tableView的头视图时候也用了initWithFrame方法,导致没有加载上子视图,- (instancetype)initWithFrame:(CGRect)frame
{
self = [superinitWithFrame:frame];
if (self) {
self.contentView.backgroundColor = [UIColorwhiteColor];
self.userInteractionEnabled =YES;
UITapGestureRecognizer *tap = [[UITapGestureRecognizeralloc] initWithTarget:selfaction:@selector(didTapSectionHeader:)];
[self.contentViewaddGestureRecognizer:tap];
[self.contentViewaddSubview:self.sep];
[self.contentViewaddSubview:self.addTime];
[self.contentViewaddSubview:self.more];
[self.contentViewaddSubview:self.rightArrow];
[selflayoutSubviewsContraits];
}
returnself;
}
去头文件里看了下,用了下面的方法后搞定
//- (instancetype)initWithReuseIdentifier:(nullableNSString *)reuseIdentifierNS_DESIGNATED_INITIALIZER;
- (instancetype)initWithReuseIdentifier:(nullableNSString *)reuseIdentifier {
self = [superinitWithReuseIdentifier:reuseIdentifier];
if (self) {
self.contentView.backgroundColor = [UIColorwhiteColor];
self.userInteractionEnabled =YES;
UITapGestureRecognizer *tap = [[UITapGestureRecognizeralloc] initWithTarget:selfaction:@selector(didTapSectionHeader:)];
[self.contentViewaddGestureRecognizer:tap];
[self.contentViewaddSubview:self.sep];
[self.contentViewaddSubview:self.addTime];
[self.contentViewaddSubview:self.more];
[self.contentViewaddSubview:self.rightArrow];
[selflayoutSubviewsContraits];
}
returnself;
}
所以,tableView的headerfooter用init方法和initWithReuseIdentifier才可以,而initWithFrame方法是不可以的。collectionView的头、尾视图reuseableView则用initWithFrame方法。效果如下
- 自定制 UITableViewHeaderFooterView 加载不上视图问题
- UI基础-UITableViewHeaderFooterView组标题数据不加载,好友列表只能点击不能打开
- 转圈圈定制加载中视图
- 动态加载控件UserControl到页面上 . 视图状态问题
- 关于返回上一级视图后视图中tableview内容不刷新的问题
- 关于返回上一级视图后视图中tableview内容不刷新的问题
- 加载xib到视图上
- so加载不上
- JSP样式表加载不上的问题
- (作业)文件、自定制视图、代码版 helloworld
- iOS视图懒加载问题
- 关于activity视图加载问题
- 基于UItableViewHeaderFooterView用故事板添加视图的方法
- 关于ios使用LaunchScreen作为欢迎页图片加载不上的问题
- 解决 网页本地调试通过,上传到服务器上后运行不加载JavaScript的问题
- 小米手机上ImageView加载超大本地图片不显示的问题
- listview 滑动不加载,停止加载问题
- Spring不配置视图解析器问题
- SDN, SD-WAN, NFV, VNF: What Is All This?
- 【Unity3D】自动寻路的跳跃
- 关于 String、StringBuffer 和 StringBuilder了解
- eclipse中配置Tomcat
- centos 7.x下,安装vscode
- 自定制 UITableViewHeaderFooterView 加载不上视图问题
- Android:Activity中的数据传递
- 给工厂分配销售组织/分销渠道
- kubernetes 开发入门之获取pod信息
- java运算符优先级记忆口诀
- 《Java EE 互联网轻量级框架整合开发——SSM+Redis实现》7月初即将上市
- 所有的教学网站及牛人博客分享
- 多态理解,方法重写分析,类继承与接口实现中,方法重写的实现机制的区别
- idea/eclipse远程调试Tomcat