Оба подхода хороши.
Но лично я предпочитаю иметь UIViewController
.
При проектировании ViewController в раскадровке я делаю фоновый цвет основного вида прозрачным (или иногда черный цвет с альфа-каналом от 0 до 0,5);Теперь я добавляю другое подпредставление внутри основного вида с любым размером, который мне нужен.
Теперь, представляя данный контроллер вида, убедитесь, что вы используете .overCurrentContext
для modalPresentationStyle
.
Используйте кодas
myVC?.modalPresentationStyle = .overCurrentContext;
self.present(myVC!, animated: false, completion: nil);
Если вы используете другой modalPresentationStyle
, тогда ваш фон будет выглядеть чисто черным.Но если вы используете overCurrentContext
, то новый контроллер представления будет представлен выше текущего, поэтому, если вы сохранили фоновый цвет как прозрачный, он будет прозрачным.