How can I have a popover come from a tab instead o

2019-01-29 05:00发布

I have a tabbar app, and I want a popover to come from one of the tabs. Is there a good/easy way to do this without changing views?

1条回答
霸刀☆藐视天下
2楼-- · 2019-01-29 05:36

There isn't currently a way to directly (through a supported api call) get the frame of a specific tab bar item. What I do is just show the popup from the left end of the tab bar like this:

CGFloat tabBarHeight = self.tabBarController.tabBar.bounds.size.height;
CGRect rect = CGRectMake(0, 0, tabBarHeight, tabBarHeight);
[popoverController presentPopoverFromRect:rect 
    inView:self.tabBarController.tabBar 
    permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];

You could try to estimate the position of the tab bar item taking the current orientation into account if you really wanted to and adjust the X coordinate of the rect above.

You could also look through the subviews of the tabbar and find the UITabBarButton object but that's not documented so it's not recommended.

查看更多
登录 后发表回答