使用视图控制器的 TabBar 按钮在框架中添加滑动子视图
Posted
技术标签:
【中文标题】使用视图控制器的 TabBar 按钮在框架中添加滑动子视图【英文标题】:Adding sliding subview in a frame using TabBar button of a View controller 【发布时间】:2014-04-01 06:44:54 【问题描述】:我在 View Controller 上有一个 Tab-Bar 按钮。当用户按下该按钮时,我想要一个子视图从角落侧边显示指定操作的按钮列表,并在再次按下标签栏按钮时显示子视图应该向后滑动并消失。这个子视图应该显示在主视图的小框架上。我怎样才能完成这项任务?
【问题讨论】:
【参考方案1】:向该按钮添加自定义操作。 当用户按下按钮时,检查按钮视图的原点是否在主视图的范围内。如果不是,则将其滑入,否则将其滑出。
我可能会这样做:
// 在 viewDidLoad 上调用这个
-(void)createMenuButton
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button addTarget:self action:@selector(toggleMenu) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:button];
self.navigationItem.rightBarButtonItem = item;
// 确保 menuView 属性被添加为 self.view 的子视图
-(void)toggleMenu
if (CGRectContainsPoint(self.view.bounds, self.menuView.frame.origin))
[UIView animateWithDuration:.35
animations:^
CGRect rect = self.menuView.frame;
rect.origin.x -= self.menuView.frame.size.width;
self.menuView.frame = rect;
];
else
[UIView animateWithDuration:.35
animations:^
CGRect rect = self.menuView.frame;
rect.origin.x += self.menuView.frame.size.width;
self.menuView.frame = rect;
];
希望这会有所帮助:)
【讨论】:
我知道这些东西..但是我怎么能以编程方式做到这一点..你能告诉我这个任务的代码吗? .. 请声明在 -(void)toggleMenu 中使用的变量 menuView 是一个 UIView 属性,它将您提到的按钮保存为子视图,并且是函数中使用的唯一属性。以上是关于使用视图控制器的 TabBar 按钮在框架中添加滑动子视图的主要内容,如果未能解决你的问题,请参考以下文章
如何使用子视图控制器中的按钮单击更改 tabBar 项目标题
为啥我的 TabBar 按钮在我第一次加载视图控制器时被禁用?