UIView层次管理,按钮切换
2016-08-16 15:12
169 查看
//加入子控制器 [self addChildViewController:XXXViewCtrl]; //将一个UIView显示在最前面只需要调用其父视图的方法: bringSubviewToFront() //将一个UIView层推送到背后只需要调用其父视图的方法: sendSubviewToBack() //用第二层子视图 换 第一层子视图的位置 self.view是第0层 [self.view exchangeSubviewAtIndex:1 withSubviewAtIndex:2];
切换按钮
方法1:
- (IBAction)changeAction:(id)sender { UIButton *button = (UIButton *)sender; // 点击处于当前页面的按钮,直接跳出 if ((self.currentViewCtrl == self.remoteH5ViewCtrl && button.tag == 101)||(self.currentViewCtrl == self.aboutCs2ViewCtrl && button.tag == 102)) { return; }else{ switch (button.tag) { case 101: [self replaceController:self.currentViewCtrl newController:self.remoteH5ViewCtrl]; self.currentViewCtrl = _remoteH5ViewCtrl; break; case 102: [self replaceController:self.currentViewCtrl newController:self.aboutCs2ViewCtrl]; self.currentViewCtrl = _aboutCs2ViewCtrl; break; default: break; } } } // 切换各个标签内容 - (void)replaceController:(UIViewController *)oldController newController:(UIViewController *)newController { /** * transitionFromViewController:toViewController:duration:options:animations:completion: * fromViewController 当前显示在父视图控制器中的子视图控制器 * toViewController 将要显示的姿势图控制器 * duration 动画时间(这个属性,old friend 了 O(∩_∩)O) * options 动画效果(渐变,从下往上等等,具体查看API) * animations 转换过程中得动画 * completion 转换完成 */ [self addChildViewController:newController]; [self transitionFromViewController:oldController toViewController:newController duration:0.3 options:UIViewAnimationOptionTransitionCrossDissolve animations:nil completion:^(BOOL finished) { if (finished) { [newController didMoveToParentViewController:self]; [oldController willMoveToParentViewController:nil]; [oldController removeFromParentViewController]; self.currentViewCtrl = newController; }else{ self.currentViewCtrl = oldController; } }]; }
方法2:
- (IBAction)changeAction:(id)sender { UIButton *button = (UIButton *)sender; NSInteger index = button.tag - 100; if (index != _ViewNum) { if (_ViewNum == 1) { [_remoteH5View removeFromSuperview]; //移除登录状态的view _remoteH5View = nil; } if (_ViewNum == 2) { [_aboutCs2View removeFromSuperview]; //移除登录状态的view _aboutCs2View = nil; } if (index == 1) { _remoteH5View = [RemoteH5View viewFromNIB]; _remoteH5View.frame = CGRectMake(0, 0, _NetworkView.frame.size.width, _NetworkView.frame.size.height); [_NetworkView addSubview:_remoteH5View]; _ViewNum = 1; } else { _aboutCs2View = [AboutCs2View viewFromNIB]; _aboutCs2View.frame = CGRectMake(0, 0, _NetworkView.frame.size.width, _NetworkView.frame.size.height); [_NetworkView addSubview:_aboutCs2View]; _ViewNum = 2; } } }
方法3:
UIButton *button = (UIButton *)sender; NSInteger index = button.tag - 100; if (index == 0) { self.LocalSDKbtn.selected = YES; self.RemoteH5btn.selected = NO; self.AboutCs2btn.selected = NO; [_NetworkView bringSubviewToFront:LocalSDKViewCtrl.view]; }else if (index == 1) { self.LocalSDKbtn.selected = NO; self.RemoteH5btn.selected = YES; self.AboutCs2btn.selected = NO; [_NetworkView bringSubviewToFront:RemoteH5ViewCtrl.view]; }else { self.LocalSDKbtn.selected = NO; self.RemoteH5btn.selected = NO; self.AboutCs2btn.selected = YES; [_NetworkView bringSubviewToFront:AboutCs2ViewCtrl.view]; }
相关文章推荐
- UIView层次管理和视图切换
- UIView层次管理 放到最上层 放到最下层
- UIView层次关系管理
- UIView层次管理
- UIday01: UIView及其子类 UIView UILabel frame center bounds 管理视图层次 控制文本显示
- UIView层次管理(sendSubviewToBack,bringSubviewToFront)
- UIView层次切换(bringSubviewToFront,sendSubviewToBack)的使用
- UIView的层次管理()
- UIView层次管理(放到最上层或放到最下层)
- 在form上设定了defaultbutton属性之后,切换提交按钮的解决办法
- 网络环境切换管理
- python第十一课——图形界面载入gif图片并用按钮切换
- RedHat LINUX桌面切换和用户管理技巧
- aswing学习笔记4-通过调用面板中的按钮实现主界面动态切换皮肤的问题!
- 精简按钮样式切换代码
- flex 点击按钮图片切换
- 地磅称量系统之(40) 实现称量管理界面上的添加、修改、删除、保存、取消按钮的代码
- 精通Silverlight——12.4.5 按钮控件继承层次结构
- 软件开发质量管理层次模型
- 应用于WLAN的可管理快速切换技术在AP的实现