您的位置:首页 > 产品设计 > UI/UE

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];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: