有三个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"的标题表明我们将讨论如何利用`UISegmentedControl`来动态地切换`UIViewController`子类的实例,以此实现界面内容的...
总结来说,`UISegmentedControl`在iOS应用中广泛用于实现单选功能,提供简洁的用户界面。这个Demo代码将展示如何创建、配置以及响应`UISegmentedControl`的事件,对于初学者和有经验的开发者都是很好的学习资料。...
这个源码Demo主要展示了如何将UISegmentedControl与导航式(Navigation-based)风格结合,以创建一个动态切换内容的界面,这在很多应用中都是一个实用的设计模式。通过学习这个Demo,开发者可以深入理解如何在实际...
为了实现滑动切换,可以使用`UISegmentedControl`或`UIPageViewController`。`UIPageViewController`可以嵌套在`UIViewController`中,使得用户可以通过滑动手势在多个子视图控制器间切换。 对于左右滑动切换页面,...
在iOS应用开发中,我们经常需要实现类似TabBarController的效果,以便用户可以在多个视图控制器之间轻松切换。本文将深入探讨如何使用UISegmentedControl来模拟这种效果,以替代标准的UITabBarController,同时实现...
在Android开发中,有时我们可能需要实现类似iOS7中的UISegmentedControl效果,这是一种常见的用于切换不同视图或展示选项的组件。为了在Android平台上创建这样的分段控制器,我们需要自定义一个视图来达到目的。以下...
源码中可能展示了如何在不同的UIViewController之间进行切换,例如通过UINavigationController或者UISegmentedControl来实现。 3. **页面切换效果**:常见的视图切换效果包括滑动、淡入淡出、缩放等。例如,使用`...
首先,分段控制器是iOS界面设计中常用的一种控件,用于在多个操作或视图间进行切换。Swift中,`UISegmentedControl` 类提供了创建和管理分段控制器的方法。你可以通过设置`segments`属性来添加不同的选项,通过`...
本篇文章将深入探讨Segmented标签切换效果的实现,包括其工作原理、代码实现和优化策略。 Segmented Control通常由一组水平排列的段组成,每个段代表一个选项或功能。当用户点击某个段时,系统会高亮该段并执行相应...
在iOS开发中,实现类似网易新闻的segment切换功能,通常会使用UISegmentedControl控件。这个控件允许用户在多个选项之间进行选择,它的外观和行为都可以进行自定义,以适应不同的应用需求。以下是对这个知识点的详细...
下面是一个简单的示例代码,展示如何在`UISegmentedControl`的值改变事件中实现页面切换: ```swift class ViewController: UIViewController { @IBOutlet weak var segmentedControl: UISegmentedControl! let ...
一种常见的方式是使用`containerView`来嵌套并切换子视图控制器。另一种方法是使用`UIStackView`,将所有视图添加到栈视图中,然后根据分段控制器的选择隐藏或显示相应的视图。"分段直接实现的第二种方法"可能指的是...
这个"ios-ContainerView.zip"文件可能包含了一个示例项目,展示了如何利用Container View实现分页选择的功能,即用户可以通过滑动或点击在不同的视图控制器间切换,这种设计常见于展示多个板块内容的应用中。...
"ios-按钮切换.zip"这个压缩包显然包含了实现这种效果的相关资源,特别适用于初学者学习和实践。在这里,我们将深入探讨如何在iOS应用中创建分段选择(Segmented Control)以及与之相关的按钮切换效果,以及如何使用...
在Swift编程语言中,实现类似网易新闻应用中的控制器(UIViewController)之间轻松切换的效果,主要涉及到UIPageViewController或者SegmentedControl的使用。这两种组件是iOS应用中常见的导航元素,能够为用户提供...
这篇内容将深入探讨如何在Swift中实现Segment Control在导航栏上,并通过它来控制页面之间的切换。 首先,我们需要在故事板(Storyboard)中创建一个导航控制器(Navigation Controller)。导航控制器是iOS应用中...
1. **自定义View的实现**:在Android中,分段控制器并非原生组件,因此它的实现可能涉及到了自定义View的过程,包括绘制、触摸事件处理等。 2. **XML布局和Java代码的交互**:源码可能会展示如何在XML布局文件中声明...
在许多应用设计中,为了提供更好的用户体验,开发者可能会希望实现一个功能:当用户双击UISegmentedControl时,能够取消当前的选择,恢复到无选中状态。这个功能在一些需要频繁切换或清除选择的场景下特别有用。下面...
2. **事件处理(Event Handling)**:可能会有一个`- (IBAction)segmentedControlValueChanged:(UISegmentedControl *)sender`方法,用来处理分段控制器的值改变事件,从而触发页面切换。 3. **动画效果...
这通常涉及到`UINavigationController`的`pushViewController:animated:`方法或者使用`Container View`进行嵌套。 6. **代码示例**: ```swift import UIKit class ViewController: UIViewController { @...