создать динамические c кружки на границе большого круга в SWIFT - PullRequest
0 голосов
/ 13 июля 2020

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

Это код:

 circleContainerView =  CircleView(frame: CGRect(x: 10, y: amountContainerView.center.y + 125, width: self.view.frame.width - 40, height: self.view.frame.height / 2 - 20))
    circleContainerView.backgroundColor = .white
    let slotNumbers = 3.0
    
    let slotHeight = 110.0
    let slotAngle: Double = 360 / slotNumbers
    //let radius: Double = 150.0
    
    let radius: Double = Double(circleContainerView.frame.width - 40) / 2
    
    let center = CGPoint(x: circleContainerView.frame.width / 2, y: circleContainerView.frame.height / 2)
    
    for i in stride(from: 0, to: slotNumbers, by: 1) {
      let itemButton = UIButton()
      
      let y = sin((slotAngle * i) * (Double.pi / 180)) * radius + Double(center.y) - (slotHeight / 2)
      let x = cos((slotAngle * i) * (Double.pi / 180)) * radius + Double(center.x) - (slotHeight / 2)
      
      itemButton.frame = CGRect(x: x, y: y, width: slotHeight, height: slotHeight)
      setupItemSlot(button: itemButton, item: items[Int(i)])
      circleContainerView.addSubview(itemButton)
  
func setupItemSlot(button: UIButton, item: SlotItem) {
    button.backgroundColor = .white
    button.layer.cornerRadius = button.frame.height / 2
    let containerView = UIButton()
    containerView.frame = CGRect(x: button.frame.width / 2 - 37.5, y: 0, width: 75, height: 75)
    button.backgroundColor = .white
    button.layer.cornerRadius = button.frame.height / 2
    button.layer.shadowColor = UIColor.black.cgColor
    button.layer.shadowOffset = CGSize(width: 1, height: 2)
    button.layer.shadowRadius = 5.0
    button.layer.shadowOpacity = 0.2
   
   
  }

и вот чего я добился:

взгляд на то, чего я достиг

но я хочу вот такой пример:

пример

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