如何从 Xamarin.ios 访问 UIImagePickerController 快门 UiButton

Posted

技术标签:

【中文标题】如何从 Xamarin.ios 访问 UIImagePickerController 快门 UiButton【英文标题】:How to access the UIImagePickerController Shutter UiButton from Xamarin.ios 【发布时间】:2019-04-10 09:37:14 【问题描述】:

我想从 xamarin.ios 应用程序访问快门 UiButton 所以我可以对其进行一些更改,但我无法找到它。

所以我尝试在 xcode 中重新创建 UIImagePickerController 项目,并且我使用此代码找到了它并且我能够进行更改。 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
                                                    
                                                

                                            
                                        
                                    
                                
                            
                        

                    

Image : can't find the UiButton from vs

【问题讨论】:

能否展示C#代码或图片,我去看看。 【参考方案1】:

Xamarin 没有不同的视图层次结构。您的问题出在以下几行:

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

我不确定您如何将其翻译为 Xamarin(这也可能会影响结果),但类类型的字符串描述可能不同。因此,您需要列出所有字符串,找到正确的字符串并在 if 语句中使用它。

【讨论】:

我没有这样翻译,我尝试调试我的 xamarin.iOS 代码并从 Visual Studio 中搜索 UiimagePickerController 实例中的按钮

以上是关于如何从 Xamarin.ios 访问 UIImagePickerController 快门 UiButton的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin iOS - 我们如何以编程方式将可访问性焦点设置为按钮

Xamarin iOS 方法在应用导航到后台、关闭或导航到不同屏幕时覆盖以保存数据

如何从 Xamarin.iOS 中的 iOS 扩展调用 NSUserDefaults Observer

如何在 Xamarin(iOS) 中将按钮从右向左移动

Xamarin / iOS - 如何从硬件键盘禁用选项卡键码

Xamarin.iOS - 操作表行号