xamarin.forms - 如何从 Xamarin.ios 访问 UIImagePickerController 快门 UiButton
问题描述
我想从 xamarin.iOS 应用程序访问 Shutter 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
}
}
}
}
}
}
}
}
}
解决方案
Xamarin 没有不同的视图层次结构。您的问题出在以下几行:
var t = String(describing:type(of:vvvvvv))
if(t == "CUShutterButton")
我不确定您如何将其翻译为 Xamarin(这也可能会影响结果),但类类型的字符串描述可能会有所不同。因此,您需要列出所有字符串,找到正确的字符串并在 if 语句中使用它。
推荐阅读
- javascript - 如何使用 Vue CLI 创建带有选项卡的 Vue 项目
- python-3.x - python-fortran integration: callback comparison between f2py and ctypes
- python - 如何从保存的 HTLM 页面解析表?
- angular - ANGULAR - 服务尚未完成加载 Observable
在被方法使用之前 - c# - MongoDB C#查询包含属性值的对象数组
- python - Dataframe 中的递归值
- ssl - 使用 Windows SmartScreen 建立安装程序声誉
- javascript - 在 Ionic 4 中搜索 API 数据
- microsoft-teams - 如何为 Teams 构建 Python 机器人?如何在我的 PROD 服务器中部署相同的内容?
- python - 在python中的特定行之后拆分文本文件