UISegmentedControl 是一个分段控制组件。继承UIControl。
效果图如下:
分段组件提供一栏按钮,但同一时间只能激活其中一个按钮。分段组件会导致屏幕上看到的内容发生变化。它们常用于在不同类别的信息之间选择,或在不同的应用屏幕之间切换。
//
// ViewController.m
// UISegmentedControl
//
// Created by Apple on 16/5/11.
// Copyright © 2016年 Apple. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
UIView* view;
NSArray* imgList;
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSArray* menuList = [NSArray arrayWithObjects:@"A",@"B",@"C",@"D", nil];
// 分段控制器(分段显示不同的数据)
UISegmentedControl* segmentedControl = [[UISegmentedControl alloc] initWithItems:menuList];
segmentedControl.frame = CGRectMake(10, 20, 300, 50);
// 设置默认选中的Item( 默认从 0 开始)
[segmentedControl setSelectedSegmentIndex:0];
// 设置某项Item的Title
[segmentedControl setTitle:@"提莫" forSegmentAtIndex:0];
[segmentedControl setTitle:@"提莫1" forSegmentAtIndex:1];
[segmentedControl setTitle:@"提莫2" forSegmentAtIndex:2];
[segmentedControl setTitle:@"提莫3" forSegmentAtIndex:3];
// 是否允许点击后还原效果(默认是NO),即分段栏是否恢复为选中前的颜色
//[segmentedControl setMomentary:YES];
// 绑定事件处理方法
[segmentedControl addTarget:self action:@selector(onChange:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:segmentedControl];
// 创建一个UIView,用来显示图片
view = [[UIView alloc] initWithFrame: CGRectMake(10, 80, 300, 380)];
view.backgroundColor = [UIColor redColor];
// 4张图片
UIImageView* img1 = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 300, 380)];
[img1 setImage:[UIImage imageNamed:@"1.jpg"]];
UIImageView* img2 = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 300, 380)];
[img2 setImage:[UIImage imageNamed:@"2.jpg"]];
UIImageView* img3 = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 300, 380)];
[img3 setImage:[UIImage imageNamed:@"3.jpg"]];
UIImageView* img4 = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 300, 380)];
[img4 setImage:[UIImage imageNamed:@"4.jpg"]];
imgList = @[img1,img2,img3,img4];
// 默认显示第一张图片
[view addSubview:img1];
[self.view addSubview:view];
}
-(void)onChange:(UISegmentedControl*) segmentedC{
//segmentedC.selectedSegmentIndex 表示当前选中的某项的index
switch (segmentedC.selectedSegmentIndex) {
case 0:
[view addSubview:[imgList objectAtIndex:0]];
break;
case 1:
[view addSubview:[imgList objectAtIndex:1]];
break;
case 2:
[view addSubview:[imgList objectAtIndex:2]];
break;
case 3:
[view addSubview:[imgList objectAtIndex:3]];
break;
}
}
@end
效果图如下: