Мне нужно создать набор кнопок, затем избавиться от них и создать новые наборы - PullRequest
0 голосов
/ 09 июня 2019

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

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

 func createButtons(wheelNumber: Int) {
    for i in 0..<wheels[wheelNumber].length {
    let button = MyButton()
    let radius = CGFloat(200.0)
    button.backgroundColor = UIColor.green
    button.setTitle(wheels[wheelNumber].alphabet[i], for: .normal)
    button.setTitleColor(.black, for: .normal)
    button.pin = i
    button.wheelNumber = wheelNumber
    button.layer.cornerRadius = 15
    let length = wheels[wheelNumber].length
    button.frame = CGRect(x: 0,y: 0,width: 20,height: 20)
        let theda = Double.pi - Double(i) * (2.0 * Double.pi / 
        Double(length))
        let x = button.center.x + radius * CGFloat(sin(theda)) / 2.0
        let y = button.center.y + radius * CGFloat(cos(theda)) / 2.0
    button.center = CGPoint(x: x + 180, y: y + 125)
    button.addTarget(self, action: #selector(pressed), for:   .touchUpInside)
    self.view.addSubview(button)
  //      buttons.append(button)
    }
}

class MyButton: UIButton {
    var pin = 0
    var verticalTitle = ""
   var horizontalTitle = ""
    var origionalRect = CGRect(x:0,y:0,width:0,height:0)
    var wheelNumber = 0

1 Ответ

0 голосов
/ 09 июня 2019

Создайте свойство для ваших кнопок:

var buttons = [UIButton]()

В createButtons() добавьте ваш массив button к buttons после добавления его в суперпредставление:

self.view.addSubview(button)  // existing code
buttons.append(button)

Когда пришло время удалить кнопки, удалите их из суперпредставления и очистите массив buttons:

// remove the buttons from the screen
buttons.forEach { button in button.removeFromSuperview() }

// free up last reference to buttons so memory is freed
buttons = []

Теперь вы готовы создавать больше кнопок:

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