У меня есть контроллер rootview, в который я добавил контроллер разделенного представления из раскадровки и динамически добавляю еще один контроллер SecondView в качестве дочернего элемента к контроллеру rootview. Проблема, с которой я столкнулся, связана с ориентацией контроллера SecondView, удаленного из Rootview. Контроллер и разделенное представление занимают весь кадр представления.
Ниже приведен мой код добавления дочернего представления
let menuVC = self.storyboard?.instantiateViewController(withIdentifier: "INSPSortFilterViewController") as! INSPSortFilterViewController
menuVC.filterClose = self
var sortingViewWidth:CGFloat? = 0.0
if islandscape
{
sortingViewWidth = UIScreen.main.bounds.size.width/3
menuVC.viewWidth = sortingViewWidth! - 20
}
else
{
sortingViewWidth = UIScreen.main.bounds.size.width/2
menuVC.viewWidth = sortingViewWidth! - 20
}
self.splitViewController?.parent?.view.addSubview(menuVC.view)
self.splitViewController?.parent?.addChildViewController(menuVC)
menuVC.didMove(toParentViewController: self.splitViewController?.parent)
menuVC.view.layoutIfNeeded()
menuVC.sortingAndFilterProtocol = viewModel
menuVC.filterClose = self
menuVC.jobList = viewModel?.actualJobList
menuVC.filteredJobList = self.jobList
let navigationBarHeight = ((self.navigationController?.navigationBar.frame.size.height)! + UIApplication.shared.statusBarFrame.size.height)
menuVC.view.frame=CGRect(x: 0, y: 0+navigationBarHeight, width: sortingViewWidth!, height: UIScreen.main.bounds.size.height)
let slideInFromLeftTransition = Utility.sharedInstance.getTransition(type: Transition.Left)
// Add the animation to the View's layer
menuVC.view.layer.add(slideInFromLeftTransition, forKey: "slideInFromLeftTransition")
UIView.animate(withDuration: 0.3, delay: 0.0, options: .curveEaseInOut, animations: { () -> Void in
self.splitViewController?.view.frame=CGRect(x: sortingViewWidth!, y: 0, width: (UIScreen.main.bounds.size.width), height: UIScreen.main.bounds.size.height)
}, completion:nil)
Подробнее здесь: https://stackoverflow.com/questions/444 ... amatically
Контроллер дочернего представления не изменяет размер при вращении при программном добавлении ⇐ IOS
Программируем под IOS
1737803700
Anonymous
У меня есть контроллер rootview, в который я добавил контроллер разделенного представления из раскадровки и динамически добавляю еще один контроллер SecondView в качестве дочернего элемента к контроллеру rootview. Проблема, с которой я столкнулся, связана с ориентацией контроллера SecondView, удаленного из Rootview. Контроллер и разделенное представление занимают весь кадр представления.
Ниже приведен мой код добавления дочернего представления
let menuVC = self.storyboard?.instantiateViewController(withIdentifier: "INSPSortFilterViewController") as! INSPSortFilterViewController
menuVC.filterClose = self
var sortingViewWidth:CGFloat? = 0.0
if islandscape
{
sortingViewWidth = UIScreen.main.bounds.size.width/3
menuVC.viewWidth = sortingViewWidth! - 20
}
else
{
sortingViewWidth = UIScreen.main.bounds.size.width/2
menuVC.viewWidth = sortingViewWidth! - 20
}
self.splitViewController?.parent?.view.addSubview(menuVC.view)
self.splitViewController?.parent?.addChildViewController(menuVC)
menuVC.didMove(toParentViewController: self.splitViewController?.parent)
menuVC.view.layoutIfNeeded()
menuVC.sortingAndFilterProtocol = viewModel
menuVC.filterClose = self
menuVC.jobList = viewModel?.actualJobList
menuVC.filteredJobList = self.jobList
let navigationBarHeight = ((self.navigationController?.navigationBar.frame.size.height)! + UIApplication.shared.statusBarFrame.size.height)
menuVC.view.frame=CGRect(x: 0, y: 0+navigationBarHeight, width: sortingViewWidth!, height: UIScreen.main.bounds.size.height)
let slideInFromLeftTransition = Utility.sharedInstance.getTransition(type: Transition.Left)
// Add the animation to the View's layer
menuVC.view.layer.add(slideInFromLeftTransition, forKey: "slideInFromLeftTransition")
UIView.animate(withDuration: 0.3, delay: 0.0, options: .curveEaseInOut, animations: { () -> Void in
self.splitViewController?.view.frame=CGRect(x: sortingViewWidth!, y: 0, width: (UIScreen.main.bounds.size.width), height: UIScreen.main.bounds.size.height)
}, completion:nil)
Подробнее здесь: [url]https://stackoverflow.com/questions/44499058/chilld-view-controller-donot-resize-on-rotation-when-added-programatically[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия