您的位置:首页 > 产品设计 > UI/UE

iOS控件之UISegmentedControl

2016-06-01 12:56 501 查看
分段控件UISegmentedControl

一,作用:分段控件,页面的切换等等

二,UISegmentedControlDemo

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
self.window.backgroundColor = [UIColor whiteColor];

// NSArray *items = @[@"搜索", @"图片", @"视频", @"音乐"];
NSArray *images = @[[UIImage imageNamed:@"segment_check"], [UIImage imageNamed:@"segment_search"], [UIImage imageNamed:@"segment_tools"]];
UISegmentedControl *sc = [[UISegmentedControl alloc] initWithItems:images];
sc.segmentedControlStyle = UISegmentedControlStylePlain;
sc.frame = CGRectMake(60, 100, 200, 40);
sc.selectedSegmentIndex = 1;
// sc.tintColor = [UIColor redColor];
[sc addTarget:self action:@selector(change:) forControlEvents:UIControlEventValueChanged];
[self.window addSubview:sc];
[sc release];

[self.window makeKeyAndVisible];
return YES;
}

- (void)change:(UISegmentedControl *)sc
{
NSLog(@"sc : %d", sc.selectedSegmentIndex);
}

#import "SegmentedControlTestViewController.h"  

@implementation SegmentedControlTestViewController  

@synthesize segmentedControl;  

  

  

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.  

- (void)viewDidLoad {  

    NSArray *segmentedArray = [[NSArray alloc]initWithObjects:@"1",@"2",@"3",@"4",nil];  

    //初始化UISegmentedControl  

    UISegmentedControl *segmentedTemp = [[UISegmentedControl alloc]initWithItems:segmentedArray];  

    segmentedControl = segmentedTemp;  

    segmentedControl.frame = CGRectMake(60.0, 10.0, 200.0, 50.0);  

      

    [segmentedControl setTitle:@"two" forSegmentAtIndex:1];//设置指定索引的题目  

    [segmentedControl setImage:[UIImage imageNamed:@"lan.png"] forSegmentAtIndex:3];//设置指定索引的图片  

    [segmentedControl insertSegmentWithImage:[UIImage imageNamed:@"mei.png"] atIndex:2 animated:NO];//在指定索引插入一个选项并设置图片  

    [segmentedControl insertSegmentWithTitle:@"insert" atIndex:3 animated:NO];//在指定索引插入一个选项并设置题目  

    [segmentedControl removeSegmentAtIndex:0 animated:NO];//移除指定索引的选项  

    [segmentedControl setWidth:70.0 forSegmentAtIndex:2];//设置指定索引选项的宽度  

    [segmentedControl setContentOffset:CGSizeMake(10.0,10.0) forSegmentAtIndex:1];//设置选项中图片等的左上角的位置  

      

    //获取指定索引选项的图片imageForSegmentAtIndex:  

    UIImageView *imageForSegmentAtIndex = [[UIImageView alloc]initWithImage:[segmentedControl imageForSegmentAtIndex:1]];  

    imageForSegmentAtIndex.frame = CGRectMake(60.0, 100.0, 30.0, 30.0);  

      

    //获取指定索引选项的标题titleForSegmentAtIndex  

    UILabel *titleForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(100.0, 100.0, 30.0, 30.0)];  

    titleForSegmentAtIndex.text = [segmentedControl titleForSegmentAtIndex:0];  

      

    //获取总选项数segmentedControl.numberOfSegments  

    UILabel *numberOfSegments = [[UILabel alloc]initWithFrame:CGRectMake(140.0, 100.0, 30.0, 30.0)];  

    numberOfSegments.text = [NSString stringWithFormat:@"%d",segmentedControl.numberOfSegments];  

      

    //获取指定索引选项的宽度widthForSegmentAtIndex:  

    UILabel *widthForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(180.0, 100.0, 70.0, 30.0)];  

    widthForSegmentAtIndex.text = [NSString stringWithFormat:@"%f",[segmentedControl widthForSegmentAtIndex:2]];  

      

    segmentedControl.selectedSegmentIndex = 2;//设置默认选择项索引  

    segmentedControl.tintColor = [UIColor redColor];  

    segmentedControl.segmentedControlStyle = UISegmentedControlStylePlain;//设置样式  

    segmentedControl.momentary = YES;//设置在点击后是否恢复原样  

      

    [segmentedControl setEnabled:NO forSegmentAtIndex:4];//设置指定索引选项不可选  

    BOOL enableFlag = [segmentedControl isEnabledForSegmentAtIndex:4];//判断指定索引选项是否可选  

    NSLog(@"%d",enableFlag);  

      

    [self.view addSubview:widthForSegmentAtIndex];  

    [self.view addSubview:numberOfSegments];  

    [self.view addSubview:titleForSegmentAtIndex];  

    [self.view addSubview:imageForSegmentAtIndex];  

    [self.view addSubview:segmentedControl];  

      

    [widthForSegmentAtIndex release];  

    [numberOfSegments release];  

    [titleForSegmentAtIndex release];  

    [segmentedTemp release];  

    [imageForSegmentAtIndex release];  

      

    //移除所有选项  

    //[segmentedControl removeAllSegments];  

    [super viewDidLoad];  

}  

  

  

- (void)didReceiveMemoryWarning {  

    // Releases the view if it doesn't have a superview.  

    [super didReceiveMemoryWarning];  

      

    // Release any cached data, images, etc that aren't in use.  

}  

- (void)viewDidUnload {  

    // Release any retained subviews of the main view.  

    // e.g. self.myOutlet = nil;  

}  

  

- (void)dealloc {  

    [segmentedControl release];  

    [super dealloc];  

}  

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: