我使用这篇文章制作了标题:StoryBoards 中的表格标题视图
但我无法在滚动时将标题粘贴(修复)到屏幕顶部。
怎样才能做到这一点?
PS Table 的风格很简单,当我厌倦了超载viewForHeaderInSection
并返回标题视图的出口时,情况变得更糟。
提前致谢!
我使用这篇文章制作了标题:StoryBoards 中的表格标题视图
但我无法在滚动时将标题粘贴(修复)到屏幕顶部。
怎样才能做到这一点?
PS Table 的风格很简单,当我厌倦了超载viewForHeaderInSection
并返回标题视图的出口时,情况变得更糟。
提前致谢!
这是我认为使标题视图粘在桌面上的代码(这不是默认行为):
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGRect rect = self.tableHeaderView.frame;
rect.origin.y = MIN(0, self.tableView.contentOffset.y);
self.tableHeaderView.frame = rect;
}
另一种方法是为第一部分设置标题视图。您不能在 处使用任何子视图,viewForHeaderInSection
您必须在那里返回尚未在视图层次结构中的视图。该方法的优点是节标题视图设计在桌面上,缺点是您可能希望在功能中具有节标题,这会破坏解决方案。
我认为最好使用 UIViewController 而不是情节提要中的 UITableViewController 来实现这一点。只需在视图顶部、情节提要中放置一个标题,然后在标题下放置一个 UITableView。
我能够做到(至少在 iOS 6 中)这样,不知道为什么这件事有效:)
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
if(self.headerManualView == nil) {
//allocate the view if it doesn't exist yet
headerManualView = [[UIView alloc] init];
//create the button
UITextField *txtField = [[UITextField alloc] initWithFrame:CGRectMake(10, 3, 250, 44)];
//the button should be as big as a table view cell
txtField.borderStyle = UITextBorderStyleRoundedRect;
//set action of the button
//[txtField addTarget:self action:@selector(removeAction:) forControlEvents:UIControlEventTouchUpInside];
//add the button to the view
[headerManualView addSubview:txtField];
}
//return the view for the footer
return headerManualView;
}