Заголовок табличного представления скрывается как панель поиска - PullRequest
4 голосов
/ 01 июля 2010

Как бы я мог позволить прокрутке представления заголовка табличного представления входить и выходить за границы, даже если общий размер содержимого таблицы не превышает границы.В качестве примера в Mail.app даже в представлениях без сообщений вы все равно можете прокручивать строку поиска как в, так и вне поля зрения (без полосы прокрутки, которую я должен добавить).Как я могу получить эту функциональность, не используя контроллер отображения поиска / панель поиска.

Ответы [ 2 ]

2 голосов
/ 07 декабря 2010

Попробуйте установить свойства UIScrollView:

@property(nonatomic) CGPoint contentOffset
@property(nonatomic) BOOL alwaysBounceVertical

Установите contentOffset на height из searchBar и alwaysBounceVertical на YES.

Это должно сработать!

0 голосов
/ 25 августа 2013

То, что вы видите, представляет собой особое поведение UITableView, когда для 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];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...