Изменение навигации Three20BarTintColor вызывает пробел в верхней части галереи изображений ThumbView

Я добавил в свое приложение галерею изображений Three20. Я хочу изменить цвет панели навигации в верхней части экрана галереи изображений. Я зашел в TTThumbsViewController.m и нашел строки, в которых говорилось:

self.statusBarStyle = UIStatusBarStyleDefault;
self.navigationBarStyle = UIBarStyleDefault;

Если я изменю эти значения, цвет / стиль панели навигации изменится, но между панелью навигации и первой строкой изображений появится разрыв. Кажется, что зазор имеет высоту больше, чем панель навигации, но короче, чем первая строка эскизов.

Я реализовал таблицу стилей Three20, но это не решило проблему.


person Chris    schedule 20.07.2010    source источник


Ответы (2)


В моем приложении, в файле, где я использую TTThumbsViewController, я добавил этот метод в файл .m, и он устранил проблему с разрывом:

- (void) updateTableLayout {
self.tableView.contentInset = UIEdgeInsetsMake(5, 0, 0, 0);
self.tableView.scrollIndicatorInsets = UIEdgeInsetsMake(TTBarsHeight(), 0, 0, 0);
}

Теперь я могу изменить цвет навигационной панели на все, что захочу, и интервал между навигационной панелью / таблицей правильный.

person Chris    schedule 27.07.2010
comment
Привет, Крис, я чуть не вскочил со своего места, когда увидел твое решение, так как у меня такая же проблема. К сожалению, ваше решение не работает. Любые идеи? Я пробовал вызвать этот метод на viewDidAppear, и это не имело значения. - person Chris James; 03.08.2010
comment
Мне не нужно было вызывать этот метод или делать что-либо, кроме простого добавления метода в мой .m файл. Я добавил его в файл .m, который я создал в своем приложении, а не в файл .m, который содержится в самом Three20 Framework. У меня с собой сейчас нет кода, поэтому я работаю с памятью. Я проверю сегодня вечером, но не думаю, что я сделал что-то еще, чтобы это заработало. Может быть разница между тем, как вы реализуете TTThumbsViewController, и это может быть разница? Вот ссылка на учебник, который я использовал изначально (оно не включает исправление пробелов) bit.ly/bbAANX - person Chris; 03.08.2010

Как я уже говорил некоторое время назад, у меня была такая же проблема. В моем случае я создал категорию для TTThumbsViewController Three20, и когда я попытался переопределить метод updateTableLayout, ничего не произошло, поэтому я попытался поместить тот же код в другой метод - viewWillAppear - и это сработало.

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    self.tableView.contentInset = UIEdgeInsetsMake(5, 0, 0, 0);
    self.tableView.scrollIndicatorInsets = UIEdgeInsetsMake(TTBarsHeight(), 0, 0, 0);
}

Регистрирую здесь на всякий случай, чтобы помочь другим. И спасибо Крису за ваш первоначальный ответ.

person georgepiva    schedule 16.02.2012