@tiger_13

Как сделать тень в uitextfield разную с двух сторон?

Пишу программу для IOS, в дизайне есть следующее поле для ввода
5a1d51ed024c6438790872.jpeg
какой поставить shadowoffset, чтобы была такая тень? (сверху почти нет, снизу, и по бокам разная)
  • Вопрос задан
  • 269 просмотров
Решения вопроса 1
doublench21
@doublench21 Куратор тега Swift
Достаточно просто. Нужно делать через свойство UIView.layer.shadowPath.
import UIKit

@IBDesignable
class ViewController: UIViewController {

    @IBOutlet weak var textField: UITextField!
    
    override func viewDidLoad() {
        super.viewDidLoad()

        textField.layer.shadowColor = UIColor.purple.cgColor
        textField.layer.cornerRadius = 8

        textField.layer.masksToBounds = false
        textField.layer.shadowOffset = CGSize.zero
        textField.layer.shadowRadius = 3.0
        textField.layer.shadowOpacity = 0.7

        let path = UIBezierPath()
        path.move(to: CGPoint(x: 0.0, y: 0.0))
        path.addLine(to: CGPoint(x: textField.bounds.size.width/2, y: textField.bounds.size.height/2))
        path.addLine(to: CGPoint(x: textField.bounds.maxX, y: 0.0))
        path.addLine(to: CGPoint(x: textField.bounds.maxX, y: textField.bounds.maxY))
        path.addLine(to: CGPoint(x: 0.0, y: textField.bounds.maxY))
        path.close()
        textField.layer.shadowPath = path.cgPath
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

Вышло так:
beVqPQ2jSguwZ8-Vva6S9w.jpg
Путь использовал такой:
VIBE4c0dTAuFQXiDfhoLPA.jpg
Тебе остаётся для лучшего качества сделать скажем такой путь:
WmsQS6asSLenTPqh9GKKRQ.jpg
Или более извилистый путь, если ты хочешь уменьшить глубину тени слева и справа.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы