解决TalbleView头部或底部子控件不显示问题
在自定义cell头部控件UITableViewHeaderFooterView(和自定义cell的方法几乎一样)时,出现了头部控件子控件不显示的问题。
注意和自定义cell的区别。
.h文件
- #import <UIKit/UIKit.h>
- #import "CHModleGroup.h"
- @interface HeaderView : UITableViewHeaderFooterView
- @property (nonatomic, weak) UILabel *count;
- @property (nonatomic, weak) UIButton *name;
- + (instancetype)headerViewWithTableView:(UITableView *)tableView;
- @property (nonatomic, strong) CHModleGroup *group;
- @end
.m文件
- #import "HeaderView.h"
- @implementation HeaderView
- + (instancetype)headerViewWithTableView:(UITableView *)tableView{
- static NSString *ID = @"header";
- HeaderView *header = [tableView dequeueReusableHeaderFooterViewWithIdentifier:ID];
- if (header == nil) {
- header = [[HeaderView alloc]initWithReuseIdentifier:ID];
- }
- return header;
- }
- - (id)initWithReuseIdentifier:(NSString *)reuseIdentifier
- {
- if (self = [super initWithReuseIdentifier:reuseIdentifier]) {
- UIButton *nameView = [UIButton buttonWithType:UIButtonTypeCustom];
- // 背景图片
- [nameView setBackgroundImage:[UIImage imageNamed:@"发布新闻背景副本"] forState:UIControlStateNormal];
- [nameView setBackgroundImage:[UIImage imageNamed:@"welcome3"] forState:UIControlStateHighlighted];
- // 设置按钮内部的左边箭头图片
- [nameView setImage:[UIImage imageNamed:@"buddy_header_arrow副本"] forState:UIControlStateNormal];
- [nameView setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
- // 设置按钮的内容左对齐
- nameView.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
- // 设置按钮的内边距
- // nameView.imageEdgeInsets
- nameView.titleEdgeInsets = UIEdgeInsetsMake(, , , );
- nameView.contentEdgeInsets = UIEdgeInsetsMake(, , , );
- [self.contentView addSubview:nameView];
- self.nameView = nameView;
- // 2.添加好友数
- UILabel *countView = [[UILabel alloc] init];
- countView.textAlignment = NSTextAlignmentRight;
- countView.textColor = [UIColor grayColor];
- [self.contentView addSubview:countView];
- self.countView = countView;
- }
- return self;
- }
- /**
- * 当一个控件的frame发生改变的时候就会调用
- *
- * 一般在这里布局内部的子控件(设置子控件的frame)
- */
- - (void)layoutSubviews
- {
- //一定要调用super的方法
- [super layoutSubviews];
- // 1.设置按钮的frame
- self.nameView.frame = self.bounds;
- // 2.设置数的frame
- CGFloat countY = ;
- CGFloat countH = self.frame.size.height;
- CGFloat countW = ;
- CGFloat countX = self.frame.size.width - - countW;
- self.countView.frame = CGRectMake(countX, countY, countW, countH);
- }
- //设置数据
- - (void)setGroup:(MJFriendGroup *)group
- {
- _group = group;
- // 1.设置按钮文字(组名)
- [self.name setTitle:group.name forState:UIControlStateNormal];
- // 2.设置数量(总数)
- self.count.text = [NSString stringWithFormat:@"%lu", friends.count];
- }
- @end
解决TalbleView头部或底部子控件不显示问题的更多相关文章
- Android自定义组合控件内子控件无法显示问题
今天自定义了一个组合控件,与到了个奇葩问题: 我自定义了一个RelativeLayout,这个layout内有多个子控件.但奇怪的是这些子控件一直显示不出来.调试了一下午,竟然是因为在获取(infla ...
- 解决ListView中Item的子控件与Item点击事件冲突
常常会碰到在ListView中点击当中一个Item.会一并触发其子控件的点击事件.比如Item中的Button.ImageButton等.导致了点击Item中Button以外区域也会触发Button点 ...
- 终于懂了:FWinControls子控件的显示是由Windows来管理,而不是由Delphi来管理(显示透明会导致计算无效区域的方式有所不同——透明的话应减少剪裁区域,所以要进行仔细计算)
在研究TCustomControl的显示过程中,怎么样都找不到刷新FWinControls并重新显示的代码: procedure TWinControl.PaintHandler(var Messag ...
- 记录下UIButton的图文妙用和子控件的优先显示
UIButton的用处特别多,这里只记录下把按钮应用在图文显示的场景,和需要把图片作为按钮的背景图片显示场景: 另外记录下在父控件的子控件优先显示方法(控件置于最前面和置于最后面). 先上效果图: 1 ...
- 记录下帮助一位网友解决的关于android子控件的onTouch或onClick和父OnTouch 冲突的问题。
前三天收到位网友的私信求助,问题大概如标题所示.具体是下面的情况,个人感觉,这个问题挺有趣,也会在实际项目开发中很常见.不想看前奏的请直接跳至解决方法. 问题原型: 父控件是自定义的 LinearLa ...
- ListView中的Item点击事件和子控件的冲突或者item点击没有反应的解决的方法
fragment中加入了button和checkbox这些控件.此时这些子控件会将焦点获取到.所以经常当点击item时变化的是子控件.item本身的点击没有响应. 这时候就能够使用descendant ...
- listView 解决焦点冲突问题 item项和子控件之间的冲突
listView 在item布局的顶级布局中设置 android:descendantFocusability="blocksDescendants"可以阻止子控件获取焦点 这样使 ...
- 关于ListView中item与子控件抢夺焦点的解决方法
1.在开发中,listview可以说是我们使用最频繁的控件之一了,但是关于listview的各种问题也是很多.当我们使用自定义布局的Listview的时候,如果在item的布局文件里面存在Button ...
- 浅析:点击父控件时,子控件中的textview自动进入选中状态
原因:父控件属性android:clickable="true",而textview之类的自控件默认不可点击,没有独立的点击监听,这样选中父控件时,textview之类的子控件也进 ...
随机推荐
- 003_kafka_主要配置
1.broker配置 2.Producer主要配置 3.Consumer主要配置 出错提示信息: replication factor: 1 larger than available brokers ...
- 解决:Unknown table engine 'InnoDB'
把查询mysql的结果输出到文件的过程中出现了错误 ERROR 1286 (42000): Unknown table engine 'InnoDB' 这个问题的原因是新版mysql是 ...
- jquery iframe自适应高度[转]
经典代码 iFrame 自适应高度,在IE6/IE7/IE8/Firefox/Opera/Chrome/Safari通过测试. 很古老的方法: <iframe src="../In ...
- Struts2 报 Result 错误
写的时候犯了个低级错误 struts.xml中 配置result 的时候 没有配置type
- jQuery 源码中的 camelCase
先看一下源码 //65-72行 // Matches dashed string for camelizing //匹配连字符 ‘-’ 和其后的第一个字母或数字,如果是字母,则替换为大写,如果是数字, ...
- js异步加载
默认情况javascript是同步加载的,也就是javascript的加载时阻塞的,后面的元素要等待javascript加载完毕后才能进行再加载,对于一些意义不是很大的javascript,如果放在页 ...
- 关于this,super的来源猜想
this:this可以在成员函数中引用,调用成员函数函数,一般都是 obj.fun(): 这个成员函数的执行者就是当前类的对象, 所以,this应该是由此传递的. super:相对于this, 却不应 ...
- 用maven搭建 testNG+PowerMock+Mockito测试框架
单元测试是开发中必不可少的一部分,是产品代码的重要保证. Junit和testNG是当前最流行的测试框架,Junit是使用最广泛的测试框架,有兴趣的话自己baidu一下. testNG基于Junit和 ...
- web前端基础篇⑥
LESS.①是一种拓展技术,基于css.②包含变量.混合.函数.运算.③简化css代码.降低维护成本④目前用的解析器(koala) 变量(值可变)@变量名:值步骤:①建立文件夹②建html和less两 ...
- Jquery和Javascript 实际项目中写法基础 (1)
一.JS 是什么,jquery 是什么 就不说明了,直接说一般使用是怎么样的 <!DOCTYPE html> <html> <head> <meta cha ...