Быстрый поиск вида в указанном c месте - PullRequest
1 голос
/ 26 мая 2020

У меня есть простой быстрый вид и я поместил на него 9 кнопок в виде сетки 3x3, теперь мне нужен тег для каждой кнопки, и я не знаю, как получить каждую кнопку, поэтому я могу получить свойство тега, используя для л oop. Кто-нибудь знает, как получить кнопку? Есть ли функция для просмотра в указанном месте?

Ответы [ 2 ]

1 голос
/ 26 мая 2020

Ответ Франкенштейна с .subviews работает нормально, но вы даже можете сделать это больше быстрее с помощью встроенной функции viewWithTag(_:):

    override func viewDidLoad() {
        super.viewDidLoad()

        // ...

        // targeted view must have been added to the subview by now
        if let taggedView = view.viewWithTag(1) {
            print("Got the view!")
        }

        // you can even try to cast directly
        if let taggedButton = view.viewWithTag(1) as? UIButton {
            print("Got the button!")
        }

        // if you insist on using a for loop, you could use it like this
        let highestTag = 10
        for i in 0...highestTag {
            if let taggedButton = view.viewWithTag(i) as? UIButton {
                // here you go
            }
        }
    }

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

0 голосов
/ 26 мая 2020

Вы можете использовать свойство subviews для UIView и l oop в каждом подпредставлении, чтобы проверить наличие tag, которое вам нужно:

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        for subview in view.subviews {
            if subview.tag == 1, let button = subview as? UIButton {
                print("Got the button I need.")
            }
        }

        if let button = view.viewWithTag(1) as? UIButton {
            print("Got the button I need.")
        }
    }
}

Обновление: вы также можете использовать viewWithTag чтобы найти ваш просмотр с определенным тегом из ваших подвидов.

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