У меня есть UITableViewController в моем приложении с добавленным UIRefreshControl. Иногда, однако (я не уверен, как воспроизвести это, это случается время от времени), я получаю лишние пробелы в верхней части табличного представления, когда контроль обновления смещается даже ниже этого.UITableView и UIRefreshControl перемещаются по неизвестной причине
Это то, что он выглядит (холостой ход на левой стороне, тянет вниз справа):
Я не имею никакого понятия, что может быть причиной этого. В моей viewdidload я только создаю экземпляр элемента управления обновлением и вызываю функцию обновления, которая устанавливает атрибутный заголовок. Я переместил добавление элемента управления обновлением в представление таблицы в viewDidAppear, как я читал в другом месте. Вот как выглядит этот код:
override func viewDidLoad() {
super.viewDidLoad()
self.refreshControl = UIRefreshControl()
updateData()
}
override func viewDidAppear(animated: Bool) {
refreshControl!.addTarget(self, action: "updateData", forControlEvents: UIControlEvents.ValueChanged)
tableView.insertSubview(self.refreshControl!, atIndex: 0)
}
func updateData() {
//...
ServerController.sendParkinglotDataRequest() {
(sections, plotList, updateError) in
//...
// Reload the tableView on the main thread, otherwise it will only update once the user interacts with it
dispatch_async(dispatch_get_main_queue(), {() -> Void in
self.tableView.reloadData()
// Update the displayed "Last update: " time in the UIRefreshControl
let formatter = NSDateFormatter()
formatter.dateFormat = "dd.MM. HH:mm"
let updateString = NSLocalizedString("LAST_UPDATE", comment: "Last update:")
let title = "\(updateString) \(formatter.stringFromDate(NSDate()))"
let attributedTitle = NSAttributedString(string: title, attributes: nil)
self.refreshControl!.attributedTitle = attributedTitle
})
}
}
Вы пытались удалить uirefreshcontrol и проверить, сохраняется ли проблема? Как выглядит ваша иерархия взглядов? У вас есть другие подпункты в представлении контроллера вида, которые находятся ниже вашего представления в таблице? – croX
После просмотра таблицы больше нет изображений, это только панель навигации, таблица и ячейки таблицы. Помимо управления обновлением, все они настроены в раскадровке. Я собираюсь удалить элемент управления обновлением и посмотреть, не исчезла ли проблема, но его довольно сложно отладить, поскольку эта проблема возникает редко. –
Ой, подождите, эта строка «tableView.insertSubview» ... У меня есть это до того, как я перешел к использованию UITableViewController и прочитал, что UIRefreshControl не должен использоваться так, как в обычных UITableViews. В этом случае это не обязательно, может быть, проблема? –