首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带IB的UITableViewHeaderFooterView

带IB的UITableViewHeaderFooterView
EN

Stack Overflow用户
提问于 2013-10-03 14:46:30
回答 8查看 27.4K关注 0票数 27

经过多年的避免界面生成器像瘟疫一样,我决定给它一个机会。这并不容易。

UITableViewHeaderFooterView为例。和UITableViewCell一样,它有一个contentView属性。与UITableViewCell不同,它在Interface对象库中没有模板。

我们应该如何使用Interface来创建一个UITableViewHeaderFooterView,其中包含contentView中的内容?registerNib:forHeaderFooterViewReuseIdentifier:存在的事实使我认为这是可能的。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2013-10-03 15:16:12

这是使用IB定义UITableViewHeaderFooterView的最接近的方法:

a.创建一个UITableViewHeaderFooterView子类(MYTableViewHeaderFooterView)。

b.只为contentView (MYTableViewHeaderFooterContentView)创建一个nib文件。

c.重写MYTableViewHeaderFooterView中的MYTableViewHeaderFooterView以加载在nib文件中定义的视图。

代码语言:javascript
复制
 - (instancetype)initWithReuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithReuseIdentifier:reuseIdentifier];
    if (self)
    {
        NSArray* objects = [[NSBundle mainBundle] loadNibNamed:@"MYTableViewHeaderFooterView"
                                                          owner:self
                                                        options:nil];
        UIView *nibView = [objects firstObject];
        UIView *contentView = self.contentView;
        CGSize contentViewSize = contentView.frame.size;
        nibView.frame = CGRectMake(0, 0, contentViewSize.width, contentViewSize.height);
        [contentView addSubview:nibView];
    }
    return self;
}

d.注册MYTableViewHeaderFooterView类而不是nib文件:

代码语言:javascript
复制
[self.tableView registerClass:[MYTableViewHeaderFooterView class] forHeaderFooterViewReuseIdentifier:@"cell"];
票数 32
EN

Stack Overflow用户

发布于 2013-10-28 12:27:19

我只是用一个页脚和一个NIB文件这样做的:

  1. 创建一个名为CustomFooterView.xib的空NIB文件。
  2. 在Interface中编辑NIB文件,并将最顶层的UIView自定义类更改为UITableViewHeaderFooterView。
  3. 禁用NIB中的自动布局。
  4. UITableViewHeaderFooterView视图的背景色设置为默认颜色。
  5. 使视图具有自由形式和正确的大小(例如,320 x 44)。
  6. 在UITableViewController viewDidLoad中注册要与重用标识符一起使用的NIB文件: [ forHeaderFooterViewReuseIdentifier:@"Footer"];:UINib nibWithNibName:@"CustomFooterView“bundle:nil
  7. 在UITableViewController的tableView:viewForFooterInSection:中,使用页脚标识符获取并返回视图:

  • (UIView *) tableView :(UITableView *)tableView viewForFooterInSection:(NSInteger)节{ if (节== 2)返回tableView tableView返回零;}
票数 25
EN

Stack Overflow用户

发布于 2014-08-27 11:00:25

我找到了更简单的方法。

1)创建UITableViewCell的子类并设置xib文件

2)在头文件中,将超类从UITableViewCell更改为UITableViewHeaderFooterView

就这样。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19162246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档