`
jsntghf
  • 浏览: 2547231 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

UISegmentedControl切换view的实现

    博客分类:
  • iOS
阅读更多

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

 

@interface UIViewDemoViewController : UIViewController {
	IBOutlet UIView *view1;
	IBOutlet UIView *view2;
	IBOutlet UIView *view3;
}

- (IBAction)switchViews:(id)sender;
@end

 

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

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

 

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

 

 

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

 

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

分享到:
评论

相关推荐

    swift-UISegmentedControl使用ChildViewController切换UIViewcontroller

    在这个特定的场景中,"swift-UISegmentedControl使用ChildViewController切换UIViewcontroller"的标题表明我们将讨论如何利用`UISegmentedControl`来动态地切换`UIViewController`子类的实例,以此实现界面内容的...

    UISegmentedControl Demo代码

    总结来说,`UISegmentedControl`在iOS应用中广泛用于实现单选功能,提供简洁的用户界面。这个Demo代码将展示如何创建、配置以及响应`UISegmentedControl`的事件,对于初学者和有经验的开发者都是很好的学习资料。...

    IOS源码应用Demo-UISegmentedControl 的 导航式风格.zip

    这个源码Demo主要展示了如何将UISegmentedControl与导航式(Navigation-based)风格结合,以创建一个动态切换内容的界面,这在很多应用中都是一个实用的设计模式。通过学习这个Demo,开发者可以深入理解如何在实际...

    实现底部切换标签+左右滑动切换页面

    为了实现滑动切换,可以使用`UISegmentedControl`或`UIPageViewController`。`UIPageViewController`可以嵌套在`UIViewController`中,使得用户可以通过滑动手势在多个子视图控制器间切换。 对于左右滑动切换页面,...

    用UISegmentedControl模拟TabbarController效果

    在iOS应用开发中,我们经常需要实现类似TabBarController的效果,以便用户可以在多个视图控制器之间轻松切换。本文将深入探讨如何使用UISegmentedControl来模拟这种效果,以替代标准的UITabBarController,同时实现...

    Android仿iOS7的UISegmentedControl 分段

    在Android开发中,有时我们可能需要实现类似iOS7中的UISegmentedControl效果,这是一种常见的用于切换不同视图或展示选项的组件。为了在Android平台上创建这样的分段控制器,我们需要自定义一个视图来达到目的。以下...

    多种view视图切换效果_IOS应用源码.rar

    源码中可能展示了如何在不同的UIViewController之间进行切换,例如通过UINavigationController或者UISegmentedControl来实现。 3. **页面切换效果**:常见的视图切换效果包括滑动、淡入淡出、缩放等。例如,使用`...

    swift-iOS各种效果的分段选择和下拉列表二级下拉列表可自定义列表样式

    首先,分段控制器是iOS界面设计中常用的一种控件,用于在多个操作或视图间进行切换。Swift中,`UISegmentedControl` 类提供了创建和管理分段控制器的方法。你可以通过设置`segments`属性来添加不同的选项,通过`...

    Segmented标签切换效果

    本篇文章将深入探讨Segmented标签切换效果的实现,包括其工作原理、代码实现和优化策略。 Segmented Control通常由一组水平排列的段组成,每个段代表一个选项或功能。当用户点击某个段时,系统会高亮该段并执行相应...

    IOS类似网易新闻的segment切换

    在iOS开发中,实现类似网易新闻的segment切换功能,通常会使用UISegmentedControl控件。这个控件允许用户在多个选项之间进行选择,它的外观和行为都可以进行自定义,以适应不同的应用需求。以下是对这个知识点的详细...

    UINavigationController详解与使用(二)页面切换和segmentedController

    下面是一个简单的示例代码,展示如何在`UISegmentedControl`的值改变事件中实现页面切换: ```swift class ViewController: UIViewController { @IBOutlet weak var segmentedControl: UISegmentedControl! let ...

    ios-segment切换视图.zip

    一种常见的方式是使用`containerView`来嵌套并切换子视图控制器。另一种方法是使用`UIStackView`,将所有视图添加到栈视图中,然后根据分段控制器的选择隐藏或显示相应的视图。"分段直接实现的第二种方法"可能指的是...

    ios-ContainerView.zip

    这个"ios-ContainerView.zip"文件可能包含了一个示例项目,展示了如何利用Container View实现分页选择的功能,即用户可以通过滑动或点击在不同的视图控制器间切换,这种设计常见于展示多个板块内容的应用中。...

    ios-按钮切换.zip

    "ios-按钮切换.zip"这个压缩包显然包含了实现这种效果的相关资源,特别适用于初学者学习和实践。在这里,我们将深入探讨如何在iOS应用中创建分段选择(Segmented Control)以及与之相关的按钮切换效果,以及如何使用...

    swift-通过2句代码就可以实现像网易新闻一样的控制器之间的来回切换。

    在Swift编程语言中,实现类似网易新闻应用中的控制器(UIViewController)之间轻松切换的效果,主要涉及到UIPageViewController或者SegmentedControl的使用。这两种组件是iOS应用中常见的导航元素,能够为用户提供...

    swift中实现segment在导航栏控制页面之间的转换

    这篇内容将深入探讨如何在Swift中实现Segment Control在导航栏上,并通过它来控制页面之间的切换。 首先,我们需要在故事板(Storyboard)中创建一个导航控制器(Navigation Controller)。导航控制器是iOS应用中...

    android-segmented-control-view.zip

    1. **自定义View的实现**:在Android中,分段控制器并非原生组件,因此它的实现可能涉及到了自定义View的过程,包括绘制、触摸事件处理等。 2. **XML布局和Java代码的交互**:源码可能会展示如何在XML布局文件中声明...

    iOS实现选择器双击取消选择

    在许多应用设计中,为了提供更好的用户体验,开发者可能会希望实现一个功能:当用户双击UISegmentedControl时,能够取消当前的选择,恢复到无选中状态。这个功能在一些需要频繁切换或清除选择的场景下特别有用。下面...

    ios-切换下方内容页面.zip

    2. **事件处理(Event Handling)**:可能会有一个`- (IBAction)segmentedControlValueChanged:(UISegmentedControl *)sender`方法,用来处理分段控制器的值改变事件,从而触发页面切换。 3. **动画效果...

    ios-Swift实现分段菜单栏.zip

    这通常涉及到`UINavigationController`的`pushViewController:animated:`方法或者使用`Container View`进行嵌套。 6. **代码示例**: ```swift import UIKit class ViewController: UIViewController { @...

Global site tag (gtag.js) - Google Analytics