Мой предпочтительный способ сделать это - использовать контроллер упаковки. Если я хочу скрыть панель вкладок, я просто увеличиваю высоту контроллера панели вкладок, таким образом эффективно панель вкладок перемещается из экрана.
С помощью этого решения вам не нужно взламывать вкладку бара, и вы не зависите от анимации push-контроллера навигации:
import UIKit
class ViewController: UIViewController {
let tabController: UITabBarController = {
let tabController = UITabBarController()
// setup your tabbar controller here
return tabController;
}()
var tabbarHidden = false {
didSet {
var frame = self.view.bounds;
if (tabbarHidden) {
frame.size.height += self.tabController.tabBar.bounds.size.height;
}
self.tabController.view.frame = frame;
}
}
override func viewDidLoad() {
super.viewDidLoad()
// add the tab controller as child controller
addChildViewController(self.tabController)
self.tabController.view.frame = self.view.bounds
self.tabController.view.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
self.view.addSubview(self.tabController.view)
self.tabController.didMoveToParentViewController(self)
// for debugging
let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(switchTabbar))
self.tabController.view.addGestureRecognizer(tapRecognizer)
}
override func childViewControllerForStatusBarStyle() -> UIViewController? {
return self.tabController
}
override func childViewControllerForStatusBarHidden() -> UIViewController? {
return self.tabController
}
func switchTabbar() {
UIView.animateWithDuration(0.3) {
self.tabbarHidden = !self.tabbarHidden
}
}
}
Если Вы, которых парни все еще кодируют для IE6, Вы делаете ошибку.
Я использую IE7.js, чтобы заставить IE6 представлять страницы как IE7. IE7 не прекрасен, но по крайней мере он имеет некоторое подобие стандартов. Так как я только должен кодировать для IE7 и FF, он делает меня на 33% более эффективным с точки зрения тестирования против браузеров, что-то, что я думаю, приносит выгоду.
Ссылка: IE7.js
Используйте сброс CSS для выравнивания поля через браузеры. У YUI и Eric Meyer есть хорошие.
Я пишу в стандарты, и и Firefox и IE7 следуют за довольно хорошим набором вместе.
IE6 мертв, что касается меня, но если я возвращаюсь в профессиональную сеть dev, я должен буду, вероятно, пересмотреть это ;)
Дополнение.
IE6 может стать немного подозрительным, чтобы использование поля поместило элементы горизонтально на странице. Если Вы измеряете свои элементы и располагаете содержание с интервалами в рамках использования дополнения, можно заставить много разметок работать отлично в IE6/7, FF, Safari и Opera без любых взломов. IE5.5 делает вещи немного более липкими из-за поврежденной модели поля, но я думаю, что мы можем в значительной степени высчитать его при большинстве обстоятельств теперь.
Я пытаюсь сделать совместимую стандартами страницу и сделать все мое тестирование в Firefox (так как это имеет некоторые превосходные расширения разработки, такие как Веб-разработчик и Firebug). Затем, когда я закончен, я тестирую сайт в IE, затем вношу любые небольшие изменения, необходимы. Я нахожу, что должен внести очень немного изменений, так как я не делаю ничего чрезвычайно сложного с CSS.
То же здесь, кроме я не склонен должен использовать Firebug и такой. У меня только были проблемы с IE6 недавно однако - которые решены простыми обходами CSS:
/* All browsers read: */
html body {
margin: 10px;
}
/* FF, IE7, Op etc. read: */
html > body {
margin: 0;
}
Я пытаюсь сделать совместимую стандартами страницу и сделать все мое тестирование в Firefox (так как это имеет некоторые превосходные расширения разработки, такие как Веб-разработчик и Firebug). Затем, когда я закончен, я тестирую сайт в IE, затем вношу любые небольшие изменения, необходимы. Я нахожу, что должен внести очень немного изменений, так как я не делаю ничего чрезвычайно сложного с CSS.
Я раньше имел больше проблем с различиями JavaScript, но после того, как я начал пользоваться библиотеками Javascript (такими как jQuery), я прекратил иметь любые серьезные проблемы с этим.
Я с Eli. Запись против Firefox (с установленным поджигателем) делает, необходимо написать "более совместимый" код для начала и затем его меньше задания позже по линии, когда Вы приезжаете для создания этого совместимым с IE.
Используйте сайт QuirksMode, чтобы помочь Вам найти ответы на compatbility информацию
Если это - совершенно новый проект, я делаю это точкой для тестирования всех изменений html+css на всех браузерах, для которых я нацелен, поскольку я вношу изменения. В прошлом я был склонен фокусироваться на своем любимом браузере и затем тестировать с другими после того, как я был сделан, чтобы найти, что одна или несколько маленьких причуд присутствовали, и это было очень утомительно, чтобы точно определить фактическую причину. Теперь я имею все открытые браузеры и просто прохожу обновление каждого после каждого изменения html/css, чтобы удостовериться, что дисплей оправдывает мою надежду. Когда что-то идет не так, как надо, я знаю точно, что вызвало его.
Это могло бы казаться трудоемким для тестирования на всех браузерах сразу, но в конечном счете это на самом деле экономит время, поскольку Вы ловите проблемы сразу.