Угловой радиус и тень на виде внезапно не работают - PullRequest
0 голосов
/ 31 марта 2020

Несколько размещены в моем приложении, у меня есть виды с тенями и угловыми радиусами. Я попытался добавить новое представление, и внезапно код, который я использовал повторно, больше не работает. Я могу установить только угловой радиус или тень, в зависимости от того, что я положу для masksToBounds. Вот код, который я использую как для ошибочного представления, так и для других моих представлений:

        itemCountLabel.layer.masksToBounds = false
        itemCountLabel.layer.cornerRadius = itemCountLabelSize / 2.0
        itemCountLabel.layer.shadowColor = UIColor.black.cgColor
        itemCountLabel.layer.shadowOpacity = 0.25
        itemCountLabel.layer.shadowRadius = 5
        itemCountLabel.layer.shadowOffset = CGSize(width: 4, height: 4)
        contentView.addSubview(itemCountLabel)

Ответы [ 2 ]

0 голосов
/ 01 апреля 2020

Здесь вам нужно использовать два разных вида, один для скругления углов, а другой - для отображения тени, поскольку оба эти свойства не работают вместе из-за функций Маска-в-границах и Клип-в-границах. Поскольку радиус угла должен обрезать края, которые могут содержать тень.

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

0 голосов
/ 31 марта 2020

Невозможно реализовать, как вы пытались. Тень всегда применяется за пределами UIView, и cornerRadius не будет виден без маскировки UIView. Поэтому лучше добавить UIView после UILabel и для повторного использования функции написать расширение UIView, которое возвращает UIView, содержащее представление, к которому вы хотите применить тень.

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