Swift 3:
extension UITabBarController {
func setTabBarVisible(visible:Bool, duration: TimeInterval, animated:Bool) {
if (tabBarIsVisible() == visible) { return }
let frame = self.tabBar.frame
let height = frame.size.height
let offsetY = (visible ? -height : height)
// animation
UIViewPropertyAnimator(duration: duration, curve: .linear) {
self.tabBar.frame.offsetBy(dx:0, dy:offsetY)
self.view.frame = CGRect(x:0,y:0,width: self.view.frame.width, height: self.view.frame.height + offsetY)
self.view.setNeedsDisplay()
self.view.layoutIfNeeded()
}.startAnimation()
}
func tabBarIsVisible() ->Bool {
return self.tabBar.frame.origin.y < UIScreen.main.bounds.height
}
}
Для использования (если, например, self
является UITabBarController
):
self.setTabBarVisible(visible: false, duration: 0.3, animated: true)
Swift 2.x:
extension UITabBarController {
func setTabBarVisible(visible:Bool, duration: NSTimeInterval, animated:Bool) {
if (tabBarIsVisible() == visible) { return }
let frame = self.tabBar.frame
let height = frame.size.height
let offsetY = (visible ? -height : height)
// animation
UIView.animateWithDuration(animated ? duration : 0.0) {
self.tabBar.frame = CGRectOffset(frame, 0, offsetY)
self.view.frame = CGRectMake(0, 0, self.view.frame.width, self.view.frame.height + offsetY)
self.view.setNeedsDisplay()
self.view.layoutIfNeeded()
}
}
func tabBarIsVisible() ->Bool {
return self.tabBar.frame.origin.y < UIScreen.mainScreen().bounds.height
}
}
Для использования:
self.tabBarController?.setTabBarVisible(visible: false, duration: 0.3, animated: true)
datepicker jQuery является чрезвычайно гибким инструментом. Со способностью присоединить обработчики до открытия или после выбора даты, тем, выбора диапазона и множества других невероятно полезных опций, я нашел, что это удовлетворяет все мои потребности.
То, что я сижу рядом с одним из его специалистов по обслуживанию здесь на работе, также довольно полезно...
Я играл со сценарием jquery datePicker - необходимо смочь сделать все, что Вы должны с этим.
Если Вы когда-нибудь заканчиваете тем, что рассмотрели библиотеку/инструментарий JavaScript, Dijit, систему виджета, какие слои сверху Dojo, имеет календарь (календарная тестовая страница Dijit). Я нашел относительно простым реализовать.
//Правовая оговорка: я - посреди отношений любви и ненависти w/Dojo в данный момент, как я нахожусь в процессе изучения и использования его лучше.
Мне не нравится ASP.NET MS ajax, но их datepicker превосходен. Иначе, jQuery datepicker.
Я использую JSCalendar от Dynarch для проекта, я в настоящее время продолжаю работать. Это - LGPL, лицензируемый и действительно гибкий (легкий настроить к Вашим потребностям). Это имеет много функций и выглядит хорошим, также.