zoukankan      html  css  js  c++  java
  • [转]IOS Segment页面之间view的切换

    有三个view,分别为view1、view2、view3,通过UISegmentedControl进行三个view的切换。

    Ios代码  收藏代码
    1. @interface UIViewDemoViewController : UIViewController {  
    2.     IBOutlet UIView *view1;  
    3.     IBOutlet UIView *view2;  
    4.     IBOutlet UIView *view3;  
    5. }  
    6.   
    7. - (IBAction)switchViews:(id)sender;  
    8. @end  

    在Interface Builder中分别建立三个view,关联到各自的输出口,每个view上的UISegmentedControl关联到switchViews:操作。

    Ios代码  收藏代码
    1. - (void)viewDidLoad {  
    2.     [super viewDidLoad];  
    3.     [self.view addSubview:view1];  
    4.     [self.view addSubview:view2];  
    5.     [self.view addSubview:view3];  
    6. }  
    7.   
    8. - (IBAction)switchViews:(id)sender{  
    9.     UISegmentedControl *segmentedControl = sender;  
    10.     [[NSNotificationCenter defaultCenter] postNotificationName:@"switchViews" object:[NSNumber numberWithInteger:[segmentedControl selectedSegmentIndex]]];  
    11. }  

    接着,为UISegmentedControl控件建立一个处理类。

    Ios代码  收藏代码
    1. @interface SegmentedControl : UISegmentedControl {  
    2.     IBOutlet UIView *view1;  
    3.     IBOutlet UIView *view2;  
    4.     IBOutlet UIView *view3;  
    5.     IBOutlet UIViewDemoViewController* viewController;  
    6. }  
    7.   
    8. @end  

    将UISegmentedControl控件的Class改为刚创建的处理类:SegmentedControl,然后,将UISegmentedControl控件关联到四个输出口:view分别关联到刚创建的三个view上,viewController关联到File's Owner上。

    Ios代码  收藏代码
    1. - (void)awakeFromNib{  
    2.     [[NSNotificationCenter defaultCenter] addObserver:self  
    3.                                              selector:@selector(switchViews:)  
    4.                                                  name:@"switchViews"  
    5.                                                object:nil];  
    6. }  
    7.   
    8. - (void)switchViews:(NSNotification*)notification{  
    9.     NSNumber *viewNumber = [notification object];  
    10.     NSInteger i = [viewNumber integerValue];      
    11.     [self setSelectedSegmentIndex:i];  
    12.     UIView *chosenView = nil;  
    13.     switch (i) {  
    14.         case 0:  
    15.             chosenView = view1;  
    16.             break;  
    17.         case 1:  
    18.             chosenView = view2;  
    19.             break;  
    20.         case 2:  
    21.             chosenView = view3;  
    22.             break;  
    23.         default:  
    24.             break;  
    25.     }  
    26.     if (chosenView) {  
    27.         [[viewController view] bringSubviewToFront:chosenView];  
    28.     }  
    29. }  
    30.   
    31. - (void)dealloc{  
    32.     [super dealloc];  
    33.     [[NSNotificationCenter defaultCenter] removeObserver:self];  
    34. }  

    代码可以到视图切换的动画效果进行下载。

  • 相关阅读:
    洛谷P1880 [NOI1995]石子合并 (区间dp
    洛谷P1012 拼数(水题 字符串
    洛谷P1071 潜伏者(水题
    微信《跳一跳》超高分攻略,轻松排行榜首
    StringUtilsd的isEmpty、isNotEmpty、isBlank、isNotBlank
    java.util.Properties类
    timer.scheduleAtFixedRate和timer.schedule的实验
    schedule() 和 scheduleAtFixedRate() 区别
    session和jsessionid有什么关系
    增加Xss过滤步骤
  • 原文地址:https://www.cnblogs.com/haibosoft/p/3837919.html
Copyright © 2011-2022 走看看