Как сделать так, чтобы кнопка добавляла один вид за раз? - PullRequest
0 голосов
/ 16 января 2019

Я занимаюсь созданием приложения, которое имеет 3 вида. Каждый вид имеет кнопку, чтобы скрыть себя. Теперь я добавил кнопку за пределами представлений, чтобы повторно добавить их после того, как я их спрятал, но, когда я удаляю представления и нажимаю на них, отображаются все три вида. Я хочу добавить один вид за раз (без удаления других видов). Что я могу сделать? Это мой код, я даже думал о добавлении нескольких кнопок добавления, но это было бы непонятно.

      @IBAction func addViewButton(_ sender: Any) { 
    view1.isHidden = false
    view2.isHidden = false
    view3.isHidden = false
    }

1 Ответ

0 голосов
/ 16 января 2019

Объявите переменную наподобие currentVisibleViews в вашем ViewController, и предположим сначала, что видна только первая, поэтому мы начинаем с числа как 1, а также добавляем ваши представления в массив для более легкого управления:

var currentVisibleViews = 1
var viewArray = [UIView]()

В viewDidLoad добавьте свои просмотры в viewArray:

view1.isHidden = false
view2.isHidden = true
view3.isHidden = true

viewArray.append(view1)
viewArray.append(view2)
viewArray.append(view3)

Тогда в вашей кнопке:

@IBAction func addViewButton(_ sender: Any) { 
    if currentVisibleViews > 2 {
        viewArray.forEach { (view) in
            view.isHidden = true
        }
        currentVisibleViews = 0
    } else {
        viewArray[currentVisibleViews].isHidden = false
        currentVisibleViews += 1
    }
}

Код выше работает так:

  1. Сначала видны все виды
  2. Первое нажатие скроет все виды
  3. Тогда каждое нажатие сделает вид видимым
  4. Перейти к шагу 2 (как только все виды видны)

Таким образом, вы можете иметь только одну функцию для управления всеми вашими представлениями, это больше не должен быть IBAction, это может быть просто метод вашего ViewController

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