Как нарисовать слой овальной формы в UITextField - PullRequest
0 голосов
/ 11 апреля 2019

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

enter image description here

Ответы [ 2 ]

1 голос
/ 12 апреля 2019

Вот перевод ответа Антона в Objective-C, поскольку вопрос помечен для Objective-C, а не для Swift:

CAShapeLayer *shadowLayer = [[CAShapeLayer alloc] init];
shadowLayer.fillColor = [UIColor lightGrayColor].CGColor;
shadowLayer.lineWidth = 0.0f;
CGSize shadowSize = CGSizeMake(textField.bounds.size.width + 40, 40);
CGRect shawdowBounds = CGRectMake(0, 0, shadowSize.width, shadowSize.height);
shadowLayer.path = [UIBezierPath bezierPathWithOvalInRect:shawdowBounds].CGPath;
shadowLayer.bounds = shawdowBounds;
shadowLayer.position = CGPointMake(CGRectGetMidX(textField.bounds), CGRectGetMaxY(textField.bounds));
[containerView.layer insertSublayer:shadowLayer atIndex0];
1 голос
/ 11 апреля 2019

Вы можете использовать этот код в качестве примера:

let shadowLayer = CAShapeLayer()
// set your shadow color here
shadowLayer.fillColor = UIColor.lightGray.cgColor 
shadowLayer.lineWidth = 0
// calc size of your shadow according to your design
let shadowSize = CGSize(width: textField.bounds.width + 40, height: 20)
let shadowBounds = CGRect(origin: .zero, size: shadowSize)
shadowLayer.path = UIBezierPath(ovalIn: shadowBounds).cgPath
shadowLayer.bounds = shadowBounds
shadowLayer.position = CGPoint(x: textField.bounds.midX, y: textField.bounds.maxY)
containerView.layer.insertSublayer(shadowLayer, at: 0)

Здесь я предполагаю, что у вас есть некоторый containerView, содержащий ваше текстовое поле в качестве подпредставления и сохраняющий ссылку на текстовое поле в переменной с именем textField.

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