我希望实现类似Skype for iOS的功能,基本上是在滚动时保持个人资料旁边的个人资料图片。
我所做的是创建一个UITableViewHeaderFooterView
子类,并在实际帧的边界之外添加UIImageView
。
在UITableViewHeaderFooterView
子类
- (instancetype)initWithReuseIdentifier:(NSString *)reuseIdentifier {
self = [super initWithReuseIdentifier:reuseIdentifier];
//Check "y" position
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 20, 40, 40)];
imageView.image = [UIImage imageNamed:@"profile"];
imageView.backgroundColor = [UIColor redColor];
[self.contentView addSubview:imageView];
return self;
}
在UITableViewDelegate
对象
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
return 20;
}
如您所见,imageView准确地从标题完成的位置开始。
这实际上(有点')有效,但问题是当滚动时,下一个图像没有正确地“推”第一个图像,它们重叠(这完全有道理)。
检查以下video以更好地了解问题
我试图查看网络,但显然我没有提出确切的术语:)。有什么想法吗?
更新
作为更新,我想要的是this,唯一的区别是我想知道是否可以使用UITableHeaderFooterView
答案 0 :(得分:0)
嗯,一个简单的问题,你的UIImageView不在标题的框架上,它应该在标题范围内
测试它的一种简单方法是:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
return 80;
}
这将在每个部分之间产生80像素的间隙,这是另一个需要解决的问题,也许为tableView设置内容插入就足够了。