如何解决如何确保我的标签始终位于线条的中心?
我试图获取 LinePath.bounds.Max 和线 Path.bounds.Maxi 的坐标,但它没有给出想要的结果
enter code here
private func addLine(start:CGPoint,end: CGPoint) {
let linePath = UIBezierPath()
linePath.move(to: start)
linePath.addLine(to: end)
line.path = linePath.cgPath
line.strokeColor = UIColor.white.cgColor
line.lineWidth = 4
distanceLabel.text = String(distanceForLabel)
distanceLabel.textColor = .black
distanceLabel.frame = CGRect(x: linePath.bounds.midX,y: line.bounds.midY,width: linePath.bounds.width / 2,height: 20)
uiImageView.addSubview(distanceLabel)
解决方法
一个问题是您将标签框架的 y
值设置为:
y: line.bounds.midY
但应该是:
y: linePath.bounds.midY
但是,您的框架代码将标签的左上角置于线条的中点。
如果您希望标签的中心在线条上居中,请将其用于标签的框架:
distanceLabel.frame.size = CGSize(width: linePath.bounds.width / 2.0,height: 20.0)
distanceLabel.center = CGPoint(x: linePath.bounds.midX,y: linePath.bounds.midY)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。