Кто-нибудь знает, есть ли в iOS возможность добавить эту функцию, если сверху вашего изображения находится этот округленный серый вид? - PullRequest
1 голос
/ 06 июля 2019

Это строка, которая выглядит как индикатор «Домой» в нижней части приложений, отображаемых на iPhone X. Изображение 1-е из приложения часов.Изображение 2nd взято из Facebook, а изображение 3rd - это то, что я сделал сам с нуля.Я хотел бы знать, должен ли я изобретать велосипед каждый раз, когда я делаю это, как я только что сделал?Или я могу использовать что-то вроде подкласса?

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

enter image description here

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

Ответы [ 3 ]

1 голос
/ 06 июля 2019

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

1 голос
/ 06 июля 2019

Другой подход заключается в использовании CAShapeLayer:

let path = UIBezierPath()
path.move(to: CGPoint(x: 180, y: 100))
path.addLine(to: CGPoint(x: 220, y: 100))

let shapeLayer = CAShapeLayer()
shapeLayer.lineWidth = 15
shapeLayer.strokeColor = UIColor.lightGray.cgColor
shapeLayer.lineCap = .round
shapeLayer.path = path.cgPath

view.layer.addSublayer(shapeLayer)
1 голос
/ 06 июля 2019

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

var grayView = UIView()
grayView.frame = CGRect(x: 187, y: 100, width: 50, height: 15)
grayView.layer.maskToBounds = true
grayView.layer.cornerRadius = grayView.frame.height/2
grayView.backgroundColor = .gray

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