2015-10-13 84 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