2015-10-13 85 views
0

我建立一个UITableView与部分标题,可以扩大一个特定的部分。我正在使用.xib文件中的自定义视图作为UITableViewHeaderView。我想设置HeaderView的边距值,以便它不是全宽,并且在向下滚动时(不是全高)时保持最高。设置UITableViewHeaderFooterView边距值(在滚动)

  1. 正如你可以在动画中看到的视图具有全宽度 - 是有可能的裕度添加到报头存在HeaderView和屏幕的边缘之间的一些空间。

  2. 如果滚动UITableView,我想降低粘滞标题的高度 - 以便在屏幕顶部显示按钮的文本。我已经实施了UIScrollView的下列代理命令,它工作正常,但它减少了第一个HeaderView的余量,以便它在导航栏后面移动(请参见动画) - 我该如何避免这种情况?

    -(void)scrollViewDidScroll:(UIScrollView *)scrollView 
    { 
        CGFloat sectionHeaderHeight = 20; 
        if (scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView.contentOffset.y>=0) { 
         scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0); 
        } else if (scrollView.contentOffset.y>=sectionHeaderHeight) { 
         scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0); 
        } 
    } 
    

    Capture

回答

1
  1. 你可以把一个子视图与您headerview保证金。
  2. 设置高度当然是可能的,并且通过设置框架来完成,但是您也可以使导航栏不透明,这将为您节省大量编码。

    [self.navigationController.navigationBar setTranslucent:NO]; 
    

如果你想改变的高度,你的代码看起来是这样的:

CGRect frame = header.frame; 
frame.size.height = 44; 
header.frame = frame; 
[self.tableView setTableHeaderView:header]; 
+0

工作太棒了!谢谢 – nor0x