2015-09-22 3 views
1

Можно ли добавить динамически (например, путем расширения контроллера представления) пользовательский вид с определенным размером, например, 50 пикселей высотой внизу каждого контроллера представления?Динамически добавлять пользовательский вид к каждому контроллеру представления в iOS

Я использую iOS8, autolayout и storybaords, я не хочу изменять каждый вид в раскадровке, чтобы добавить мой снизу снизу.

Я пытаюсь добавить таким образом:

let view = CustomView(frame:CGRectMake(0, 0, self.view.frame.width, 50)); 
self.view.addSubview(view) 

но вид помещается на текущих контроллеры просмотра, мне нужно, чтобы иметь возможность разместить под контроллерами посмотреть, что-то вроде рекламного баннера или панели вкладок.

+1

Если вы * должны * сделать это, почему бы не просто использовать подкласс UIViewController, который помещает этот вид снизу, а затем все ваши ViewControllers могут быть подклассами этого обычая ViewController, а не обычным UIViewController. – Abizern

+0

Я просто ищу самый простой способ добавить его в свои контроллеры просмотра, не могли бы вы привести мне пример вашей идеи? –

+2

Это, наверное, самый простой способ. Непонятно ли мое предложение? Вы пробовали написать подкласс? Посмотрите на метод 'layoutSubviews', а также' insertSubview (_ view: UIView, atIndex index: Int) ' – Abizern

ответ

1

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

У моего нового контроллера корневого представления был бы контейнерный вид, чтобы разместить старый контроллер корневого представления, а ваш 50px высокий вид внизу.

Поскольку вы используете раскадровки, это не должно быть тяжело - я думаю, вы можете сделать это в значительной степени, не написав никакого кода. Вытащите новый контроллер. Добавьте представление контейнера и вид снизу. Настройте свои ограничения. Перетащите соединитель segue из представления контейнера в старый контроллер корневого представления и установите для них тип «embed». Установите точку входа на табло, чтобы быть новым контроллером.

Вот фотография.

enter image description here