Подтвердить что ты не робот

Дайте верхнюю вставку для UIRefreshControl

Я использую UIRefreshControl как он (без UITableViewController):

UIRefreshControl *refreshControl = [UIRefreshControl new];
[refreshControl addTarget:self action:@selector(viewDidBeginRefreshing:) forControlEvents:UIControlEventValueChanged];
[self.table addSubview:refreshControl];

Проблема заключается в том, что колесо обновления расположено под полупрозрачной панелью UINavigationController (ios7). В StackOverflow есть только несколько вопросов по этой проблеме. И они не принесли мне никакого ценного решения.

Я хочу, например, сделать мое положение YIRefreshControl y 80px ниже.

Примечание. Я знаю, что не рекомендуется использовать UIRefreshControl вне UITableViewController. Поэтому не нужно предупреждать об этом.

4b9b3361

Ответ 1

Я нашел решение, очень простое, не очень чистое, но похоже на обаяние.

Просто нужно поместить элемент управления обновлением в другое подзапрос, который установлен.

UIView *refreshView = [[UIView alloc] initWithFrame:CGRectMake(0, 80, 0, 0)];
[self.table addSubview:refreshView];

UIRefreshControl *refreshControl = [UIRefreshControl new];
[refreshControl addTarget:self action:@selector(viewDidBeginRefreshing:) forControlEvents:UIControlEventValueChanged];
[refreshView addSubview:refreshControl];

Ответ 2

Попробуйте добавить это в viewDidLoad в свой UIViewController:

if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
    self.edgesForExtendedLayout = UIRectEdgeNone;