即使表的总内容大小不大于边界,我如何让表视图的标题视图滚入和跳出边界。作为Mail.app中的一个示例,即使在没有消息的视图中,您仍然可以在视图中滚动搜索栏(我不应该添加滚动条)。如何在不使用搜索显示控制器/搜索栏的情况下获得此功能。
答案 0 :(得分:2)
尝试设置UIScrollView
的属性:
@property(nonatomic) CGPoint contentOffset
@property(nonatomic) BOOL alwaysBounceVertical
将contentOffset
设置为height
的{{1}}和searchBar
至alwaysBounceVertical
。
这应该可以做到!
答案 1 :(得分:0)
当UITableView
的{{1}}设置为tableHeaderView
的实例时,您看到的是UISearchBar
的特殊行为。我相信这种行为是硬编码的。因此,要获得自己的视图,您需要扩展UISearchBar
。或者更好的是,创建一个隐藏标题,并在需要隐藏行为时将标题包装在其中:
@interface HidingTableViewHeader : UISearchBar
- (id)initWithHeader:(UIView *)header;
@end
@implementation HidingTableViewHeader
- (id)initWithHeader:(UIView *)header
{
// We don't really care about the search bar initialization
self = [super init];
if (self) {
// Remove all the sub-views that make up the search bar UI
[self.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
// Override UISearchBar's fixed size
self.size = header.size;
// Match the tableHeaderView behavior: auto-resize horizontally
header.autoresizingMask = UIViewAutoresizingFlexibleWidth;
// Make the header the only sub-view
[self addSubview:header];
}
return self;
}
@end
像这样使用:
self.tableView.tableHeaderView = [[HidingTableViewHeader alloc] initWithHeader:someRegularView];