Я создал небольшой проект ios, используя swift 5, и создал небольшой UIView, и мне нужно добавить вертикальные линии в UIView. Я создал UIBezierPath рядом с l oop и повторил строку. Линии нарисованы правильно в соответствии с заданными координатами x, y, но я могу изменить толщину линии, некоторые из них жирные, а некоторые размытые (тонкие). Если кто-то знает, что здесь происходит, пожалуйста, помогите мне решить эту проблему и высоко оцените ваш отзыв. Пожалуйста, укажите мой код и изображение, например,
Код:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let testView = UIView(frame: CGRect(x:0, y: 0, width: 300, height: 500))
testView.backgroundColor = UIColor.blue
self.view.addSubview(testView)
testView.translatesAutoresizingMaskIntoConstraints = false
let guide = self.view.safeAreaLayoutGuide
NSLayoutConstraint.activate([
testView.topAnchor.constraint(equalTo: guide.topAnchor, constant: 300),
testView.leftAnchor.constraint(equalTo: guide.leftAnchor, constant: 300),
testView.widthAnchor.constraint(equalToConstant: 300),
testView.heightAnchor.constraint(equalToConstant: 500)
])
let lineDistance:Int = 20
let lineColor:UIColor = UIColor.white
let gridPath = UIBezierPath()
gridPath.lineWidth = 2
var count = 0
for x in 0..<Int(testView.bounds.size.width) {
if x % lineDistance == 0 {
count += 1
gridPath.move(to: CGPoint(x: CGFloat(x), y: 0))
gridPath.addLine(to: CGPoint(x: CGFloat(x), y: testView.bounds.size.height))
}
}
print("no of execution \(count)")
// for y in 0..<Int(testView.bounds.size.height) {
// if y % lineDistance == 0 {
// gridPath.move(to: CGPoint(x:0, y: CGFloat(y)))
// gridPath.addLine(to: CGPoint(x: testView.bounds.size.width, y: CGFloat(y)))
// }
// }
gridPath.close()
let layer = CAShapeLayer()
layer.path = gridPath.cgPath
gridPath.stroke()
layer.strokeColor = lineColor.cgColor
testView.layer.insertSublayer(layer, at: 0)
}
}
Изображение: