码迷,mamicode.com
首页 > 其他好文 > 详细

解决TalbleView头部或底部子控件不显示问题

时间:2015-09-21 23:49:46      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:

在自定义cell头部控件UITableViewHeaderFooterView(和自定义cell的方法几乎一样)时,出现了头部控件子控件不显示的问题。

注意和自定义cell的区别。

.h文件

 1 #import <UIKit/UIKit.h>
 2 #import "CHModleGroup.h"
 3 @interface HeaderView : UITableViewHeaderFooterView
 4 @property (nonatomic, weak) UILabel *count;
 5 @property (nonatomic, weak) UIButton *name;
 6 + (instancetype)headerViewWithTableView:(UITableView *)tableView;
 7 
 8 @property (nonatomic, strong) CHModleGroup *group;
 9 
10 @end

.m文件

 1 #import "HeaderView.h"
 2 
 3 @implementation HeaderView
 4 + (instancetype)headerViewWithTableView:(UITableView *)tableView{
 5     static NSString *ID = @"header";
 6     HeaderView *header = [tableView dequeueReusableHeaderFooterViewWithIdentifier:ID];
 7     if (header == nil) {
 8         header = [[HeaderView alloc]initWithReuseIdentifier:ID];
 9     }
10     return header;
11 }
12 
13 - (id)initWithReuseIdentifier:(NSString *)reuseIdentifier
14 {
15     if (self = [super initWithReuseIdentifier:reuseIdentifier]) {
16         UIButton *nameView = [UIButton buttonWithType:UIButtonTypeCustom];
17         // 背景图片
18         [nameView setBackgroundImage:[UIImage imageNamed:@"发布新闻背景副本"] forState:UIControlStateNormal];
19         [nameView setBackgroundImage:[UIImage imageNamed:@"welcome3"] forState:UIControlStateHighlighted];
20         // 设置按钮内部的左边箭头图片
21         [nameView setImage:[UIImage imageNamed:@"buddy_header_arrow副本"] forState:UIControlStateNormal];
22         [nameView setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
23         // 设置按钮的内容左对齐
24         nameView.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
25         // 设置按钮的内边距
26         //        nameView.imageEdgeInsets
27         nameView.titleEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);
28         nameView.contentEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);
29         [self.contentView addSubview:nameView];
30         self.nameView = nameView;
31         
32         
33         
34         // 2.添加好友数
35         UILabel *countView = [[UILabel alloc] init];
36         countView.textAlignment = NSTextAlignmentRight;
37         countView.textColor = [UIColor grayColor];
38         [self.contentView addSubview:countView];
39         self.countView = countView;
40         
41 
42     }
43         return self;
44     }
45 
46 /**
47  *  当一个控件的frame发生改变的时候就会调用
48  *
49  *  一般在这里布局内部的子控件(设置子控件的frame)
50  */
51 - (void)layoutSubviews
52 {
53     //一定要调用super的方法
54     [super layoutSubviews];
55     
56     // 1.设置按钮的frame
57     self.nameView.frame = self.bounds;
58     
59     // 2.设置数的frame
60     CGFloat countY = 0;
61     CGFloat countH = self.frame.size.height;
62     CGFloat countW = 150;
63     CGFloat countX = self.frame.size.width - 10 - countW;
64     self.countView.frame = CGRectMake(countX, countY, countW, countH);
65 }
66 
67 //设置数据
68 - (void)setGroup:(MJFriendGroup *)group
69 {
70     _group = group;
71     
72     // 1.设置按钮文字(组名)
73     [self.name setTitle:group.name forState:UIControlStateNormal];
74     
75     // 2.设置数量(总数)
76     self.count.text = [NSString stringWithFormat:@"%lu", friends.count];
77 }
78 
79 
80 @end

 

解决TalbleView头部或底部子控件不显示问题

标签:

原文地址:http://www.cnblogs.com/chenhongios/p/4827529.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!