注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

IOS & JAVA KEY

(iMilo)

 
 
 

日志

 
 
关于我

All the splendor in the world is not worth a good friend!! Hello my friend!!

网易考拉推荐

UISegmentedControl切换view的实现  

2011-11-18 21:36:43|  分类: IOS |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

引入

有三个view,分别为view1view2view3,通过UISegmentedControl进行三个view的切换。

实现

步骤1

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

Code

@interface UIViewDemoViewController : UIViewController

{  

    IBOutlet UIView *view1;  

    IBOutlet UIView *view2;  

    IBOutlet UIView *view3;  

}  

 

- (IBAction)switchViews:(id)sender;  

@end

- (void)viewDidLoad {

       [super viewDidLoad];

       [self.view addSubview:view1];

       [self.view addSubview:view2];

       [self.view addSubview:view3];

   }   

 - (IBAction)switchViews:(id)sender{

       UISegmentedControl *segmentedControl = sender;

       [[NSNotificationCenter defaultCenter] postNotificationName:@"switchViews" object:[NSNumber numberWithInteger:[segmentedControl selectedSegmentIndex]]];

  }

步骤2

UISegmentedControl控件建立一个处理类。

Code

@interface SegmentedControl : UISegmentedControl

{  

    IBOutlet UIView *view1;  

    IBOutlet UIView *view2;  

    IBOutlet UIView *view3;  

    IBOutlet UIViewDemoViewController* viewController;  

}  

 

@end

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

 

- (void)awakeFromNib{  

    [[NSNotificationCenter defaultCenter] addObserver:self  

                                             selector:@selector(switchViews:)  

                                                 name:@"switchViews" 

                                               object:nil];  

}  

 

- (void)switchViews:(NSNotification*)notification{  

    NSNumber *viewNumber = [notification object];  

    NSInteger i = [viewNumber integerValue];      

    [self setSelectedSegmentIndex:i];  

    UIView *chosenView = nil;  

    switch (i) {  

        case 0:  

            chosenView = view1;  

            break;  

        case 1:  

            chosenView = view2;  

            break;  

        case 2:  

            chosenView = view3;  

            break;  

        default:  

            break;  

    }  

    if (chosenView) {  

        [[viewController view] bringSubviewToFront:chosenView];  

    }  

}  

 

- (void)dealloc{  

    [super dealloc];  

    [[NSNotificationCenter defaultCenter] removeObserver:self];  

} 

 

其他

iMilo

2011-11-18

 

 

  评论这张
 
阅读(2184)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017