Как получить доступ к UIImagePickerController Shutter UiButton из Xamarin.ios - PullRequest
0 голосов
/ 10 апреля 2019

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

, поэтому я попытался воссоздать проект UIImagePickerController в xcode, и я нашел его, используя этот код, и я могу внести изменения. xamarin.iOS имеет другую иерархию представлений?

 for (index,v) in self.imagePicker.view.subviews.enumerated()
                    {
                        print("layer \(index) : \(v)")
                        for (index2,vv) in v.subviews.enumerated()
                        {
                            print("layer \(index, index2) : \(vv)")

                            for (index3,vvv) in vv.subviews.enumerated()
                            {
                                print("layer \(index, index2, index3) : \(vvv)")

                                for (index4,vvvv) in vvv.subviews.enumerated()
                                {
                                    print("layer \(index, index2, index3, index4) : \(vvvv)")
                                    for (index5,vvvvv) in vvvv.subviews.enumerated()
                                    {
                                        print("layer \(index, index2, index3, index4, index5) : \(vvvvv)")

                                        for (index6,vvvvvv) in vvvvv.subviews.enumerated()
                                        {
                                            print("layer \(index, index2, index3, index4, index5, index6) : \(vvvvvv)")

                                            if (vvvvvv as? UIButton != nil)
                                            {
                                                var t =  String(describing:type(of:vvvvvv))
                                                if(t == "CUShutterButton")
                                                {
                                                    print("is button CUShutterButton")
                                                    (vvvvvv as! UIButton).setTitleColor(UIColor.red, for: UIControlState.normal)
                                                     (vvvvvv as! UIButton).backgroundColor = UIColor.red
                                                    v.frame = CGRect.init(x: 0, y: 0, width: 500, height: 500)
                                                    for (vvvvvvv) in vvvvvv.subviews
                                                    {
                                                          vvvvvvv.backgroundColor = UIColor.red
                                                    }
                                                }

                                            }
                                        }
                                    }
                                }
                            }
                        }

                    }

Изображение: не удается найти кнопку UiButton против

1 Ответ

0 голосов
/ 10 апреля 2019

Xamarin не имеет другой иерархии представлений.Ваша проблема в следующих строках:

                                                var t =  String(describing:type(of:vvvvvv))
                                            if(t == "CUShutterButton")

Я не уверен, как вы перевели это на Xamarin (что также может повлиять на результаты), но строковое описание типа класса может отличаться.Поэтому вам нужно перечислить все строки, найти правильную и использовать ее в своем операторе if.

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