Как получить четкий эффект возвышения с CardView на iOS? - PullRequest
0 голосов
/ 28 марта 2020

Я привык к виджету CardView на Android.

Я пытаюсь получить что-то подобное программно на iOS. Я нашел такие ресурсы, как этот один . Простой CardView, производный от UIView.

Я думаю, что интересная часть кода:

Layer.CornerRadius = CornerRadius;
UIBezierPath bezierPath = UIBezierPath.FromRoundedRect(Bounds, CornerRadius);
Layer.MasksToBounds = false;
Layer.ShadowColor = ShadowColor.CGColor;
Layer.ShadowOffset = new CGSize(shadowOffsetWidth, shadowOffsetHeight);
Layer.ShadowOpacity = shadowOpacity;
Layer.ShadowPath = bezierPath.CGPath;

Это дает мне следующий результат:

enter image description here

Это почти нормально, но я бы хотел, чтобы высота была более четкой в ​​верхней и левой части карты, как у меня на Android:

enter image description here

Я не специалист по рисованию и / или дизайну интерфейса пользователя. Любая помощь приветствуется.

1 Ответ

1 голос
/ 28 марта 2020

вы можете установить shadowOffset в ноль, поскольку shadowOffset представляет местоположение тени в соответствии с рамкой UIView. Смещение (2,2) поместит тень на 2 пикселя вправо и на 2 пикселя вниз относительно элемента.

layer.ShadowOffset = .zero
...