Вид фиксируется внизу Swift - PullRequest
0 голосов
/ 08 сентября 2018

Извините, если кто-то задавал этот вопрос раньше, я не нашел то же самое. У меня есть вид с изображением, и оно всегда должно быть зафиксировано внизу в моем приложении iOS Swift. Даже если я перейду на другой экран, он все равно должен быть внизу, и это должен быть один и тот же вид, а не разные для разных экранов. Спасибо

Ответы [ 3 ]

0 голосов
/ 08 сентября 2018

Сделайте контроллер корневого представления для вашего приложения универсальным UIViewController.

Добавьте изображение в нижнюю часть вашего корневого контроллера вида

Перетащите контейнерное представление на этот контроллер представления. Сделайте вид контейнера расширенным чуть выше вашего изображения.

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

Удерживая клавишу Control, перетащите из представления контейнера на корневом контроллере представления на новый контроллер представления. Выберите «вставлять» в появившемся диалоговом окне. Вы создали встраиваемый segue, и ваш корневой контроллер представления содержит дочерний контроллер представления.

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

0 голосов
/ 08 сентября 2018

Вы можете добавить пользовательское окно UIWindow внизу экрана:

Создание UIWindow с рамкой (происхождение и размер) и установка его rootViewController для UIViewController, содержащего ваш UIImageView. Чтобы показать окно, установите isHidden на false. Если вы не хотите, чтобы основное окно перекрывалось с пользовательским, уменьшите высоту основного окна на высоту пользовательского окна.

Вы можете сделать все это в application(_:didFinishLaunchingWithOptions:) в вашем AppDelegate.

Вот краткий пример, который я использовал с рекламным баннером:

window?.frame.size.height -= adBannerHeight
adWindow = UIWindow(frame: CGRect(x: 0, y: UIScreen.main.bounds.height - adBannerHeight, width: UIScreen.main.bounds.width, height: adBannerHeight))
adWindow?.rootViewController = AdViewController()
adWindow?.isHidden = false
0 голосов
/ 08 сентября 2018

Вы можете создать собственный вид с изображением, чтобы загрузить каждый экран как фиксированный вид.

//CusomeView

import UIKit

class CustomeView: UIView {

var contentView: UIView!
override init(frame: CGRect) {
    super.init(frame: frame)

}
required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)

}


}

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

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

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var cv: CustomeView!
override func viewDidLoad() {
    super.viewDidLoad()
    if let customView = Bundle.main.loadNibNamed("CustomeView", owner: self, options: nil)?.first as? CustomeView {
        self.view.addSubview(customView)
    }
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

}

Надеюсь, эта помощь

...