C# 在Monotouch Xamarin.iOS中查找Uitabritem的位置

C# 在Monotouch Xamarin.iOS中查找Uitabritem的位置,c#,ios,xamarin.ios,uitabbarcontroller,xamarin,C#,Ios,Xamarin.ios,Uitabbarcontroller,Xamarin,我试图实现我自己的弹出菜单从一个UITabBar。 我的应用程序允许用户指定哪些菜单显示在选项卡栏上,我不喜欢iOS在有很多选项卡栏项目时使用的默认“更多”按钮,因此我想将一些选项卡栏项目创建为“子菜单”,以生成更多按钮的菜单。我希望它能从tabbaritem本身中弹出,并且每个用户的标签顺序可能不一样。 到目前为止,我可以找到用户选择的tabbaritem,但接下来我需要知道它的位置,以便可以从该位置设置弹出菜单的动画 有人知道我如何找到所选tabbaritem的框架或位置吗?您可以通过UIT

我试图实现我自己的弹出菜单从一个UITabBar。 我的应用程序允许用户指定哪些菜单显示在选项卡栏上,我不喜欢iOS在有很多选项卡栏项目时使用的默认“更多”按钮,因此我想将一些选项卡栏项目创建为“子菜单”,以生成更多按钮的菜单。我希望它能从tabbaritem本身中弹出,并且每个用户的标签顺序可能不一样。 到目前为止,我可以找到用户选择的tabbaritem,但接下来我需要知道它的位置,以便可以从该位置设置弹出菜单的动画


有人知道我如何找到所选tabbaritem的框架或位置吗?

您可以通过
UITabBar
的子视图进行迭代,只获取属于
UITabBarButton
类的子视图。然后得到感兴趣的子视图的框架

List<RectangleF> tabBarButtonFrames = new List<RectangleF>();

foreach (var view in this.tabBarController.TabBar.Subviews) {
    if (view.ToString().Contains("UITabBarButton")) {
        tabBarButtonFrames.Add(view.Frame);
    }

    Console.WriteLine(view.ToString() + "\t" + view.Frame.ToString());
}
List tabBarButtonFrames=newlist();
foreach(此.tabBarController.TabBar.subview中的var视图){
if(view.ToString().Contains(“UITabbutton”)){
tabBarButtonFrames.Add(view.Frame);
}
Console.WriteLine(view.ToString()+“\t”+view.Frame.ToString());
}
注意:包含从中获取Objective-C类名的更多方法