UIViewController Раскадровка нестандартного размера - PullRequest
0 голосов
/ 10 октября 2018

Я планирую показать небольшое меню настроек, в котором мало UISegmentControls и ползунков.Я не хочу показывать это в полноэкранном режиме, просто показываю это как подпредставление в моем контроллере представления.Одним из способов было бы определить его как подкласс UIView в целом, но тогда все проектирование должно быть выполнено в файле xib, а не в раскадровке.Мои вопросы:

  1. Какой правильный подход здесь - UIViewController, UIView или любой из двух?

  2. Если мы выберем маршрут UIViewController,как нам создать представление в раскадровке с нестандартным размером?

1 Ответ

0 голосов
/ 10 октября 2018

Оба подхода хороши.

Но лично я предпочитаю иметь UIViewController.

При проектировании ViewController в раскадровке я делаю фоновый цвет основного вида прозрачным (или иногда черный цвет с альфа-каналом от 0 до 0,5);Теперь я добавляю другое подпредставление внутри основного вида с любым размером, который мне нужен.

Теперь, представляя данный контроллер вида, убедитесь, что вы используете .overCurrentContext для modalPresentationStyle.

Используйте кодas

myVC?.modalPresentationStyle = .overCurrentContext;
self.present(myVC!, animated: false, completion: nil);

Если вы используете другой modalPresentationStyle, тогда ваш фон будет выглядеть чисто черным.Но если вы используете overCurrentContext, то новый контроллер представления будет представлен выше текущего, поэтому, если вы сохранили фоновый цвет как прозрачный, он будет прозрачным.

...