Углы окна WindowRadius и maskToBounds не будут работать для statusBar, если backgroundColor применяется к statusBar - PullRequest
0 голосов
/ 05 сентября 2018

Почему свойства cornerRadius и maskToBounds не влияют на statusBar, если я установил цвет фона для statusBar?

(я новичок в Swift)

КОНТЕКСТ

Чего я хочу достичь:

Я хочу установить cornerRadius для каждого угла экрана в приложении.


Что я сделал до сих пор?:

// I added the following in appDelegate:didFinishLaunchingWithOptions
self.window?.layer.cornerRadius = 20
self.window?.layer.masksToBounds = true

Отлично работает в любом углу экрана, ЕСЛИ у строки состояния нет цвета фона.

Если backgroundColor установлен для statusBar, только нижние углы экрана будут округлены.

Я подозреваю, что происходит сбой: Я подозреваю, что statusBar находится внутри слоя поверх слоя, в котором находится окно, в котором я устанавливаю свойство cornerRadius, и поэтому это не делает с этим свойством. Если у statusBar нет backgroundColor (.clear), оно не закрывает окно, поэтому я вижу 4 угла, закругленных на экране.

Вот почему я попытался установить свойство cornerRadius для statusBar:

// Still in appDelegate:didFinishLaunchingWithOptions
UIApplication.shared.statusBarView?.layer.cornerRadius = 20
UIApplication.shared.statusBarView?.layer.masksToBounds = true
UIApplication.shared.statusBarView?.backgroundColor = .blue

self.window?.layer.cornerRadius = 20
self.window?.layer.masksToBounds = true

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


Есть ли способ установить "глобальную маску" или "глобальное свойство", которое также влияет на statusBar?

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

Приветствуются предложения о том, чего я хочу, другими способами Спасибо:)

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