UISegmentedControl的常用属性

来源:互联网 发布:iphone手机称重软件 编辑:程序博客网 时间:2024/04/26 23:06

UISegmentedControl集成关系:UISegmentedControl:UIControl:UIView:UIResponder:NSObject

- (void)viewDidLoad{    [super viewDidLoad];    /**     1、初始化UISegmentedControl控件        - initWithItems:     */    UISegmentedControl *segmented = [[UISegmentedControl alloc]initWithItems:@[@"家庭宽带",@"企业宽带"]];    segmented.frame = CGRectMake(0, 50, 320, 45);    [self.view addSubview:segmented];                //见图1    /**     2、管理Segment内容        - setImage:forSegmentAtIndex:           根据索引 设置标签图片        - imageForSegmentAtIndex:               根据索引 获取标签图片        - setTitle:forSegmentAtIndex:           根据索引 设置标签文字        - titleForSegmentAtIndex:               根据索引 获取标签文字     */    [segmented setImage:[UIImage imageNamed:@"fan-128"] forSegmentAtIndex:0];    [segmented setImage:[UIImage imageNamed:@"tv"] forSegmentAtIndex:1];        //见图2    [segmented setTitle:@"风扇" forSegmentAtIndex:0];    [segmented setTitle:@"电视" forSegmentAtIndex:1];                           //见图3    /**     3、管理Segment        .numberOfSegments                       获取标签个数:(只读)        .selectedSegmentIndex                   设置和获取当前选中的标签索引        - insertSegmentWithImage:atIndex:animated:  插入图片标签 在index位置        - insertSegmentWithTitle:atIndex:animated:  插入文字标签 在index位置        - removeAllSegments                         删除所有标签        - removeSegmentAtIndex:animated:            删除index标签     */    NSLog(@"%lu",(unsigned long)segmented.numberOfSegments);    [segmented setSelectedSegmentIndex:1];                                         [segmented addTarget:self action:@selector(segmentedControllerAction:) forControlEvents:UIControlEventValueChanged];    [segmented insertSegmentWithTitle:@"摄像头摄像头摄像头摄像头摄像头" atIndex:2 animated:YES]; //见图4    [segmented insertSegmentWithImage:[UIImage imageNamed:@"图层-2"] atIndex:3 animated:YES];//见图5    [segmented removeSegmentAtIndex:3 animated:YES];                                            /**     4、管理Segment的事件  和  外观        .momentary                             设置是否保持选中状态,默认NO。注意:如果是YES,Segment点击完后不会显示选择状态也将不再更新selectedSegmentIndex的值        .segmentedControlStyle                 注意:这个属性iOS7已经废弃。设置控件风格        - setEnabled:forSegmentAtIndex:        根据索引 设置标签是否有效(默认有效)        - isEnabledForSegmentAtIndex:          根据索引 获取标签是否有效        .apportionsSegmentWidthsByContent      设置标签宽度是否随内容自适应(默认NO)        - setWidth:forSegmentAtIndex:          根据索引 设置标签的宽度        - widthForSegmentAtIndex:              根据索引 获取标签的宽度        - setContentOffset:forSegmentAtIndex:  根据索引 设置标签内容的偏移量        - contentOffsetForSegmentAtIndex:      根据索引 获取标签内容的偏移量     */    [segmented setMomentary:YES];                                         //见图6    [segmented setEnabled:NO forSegmentAtIndex:1];                        //见图7    [segmented setApportionsSegmentWidthsByContent:YES];                  //见图8    [segmented setWidth:80.0 forSegmentAtIndex:1];    [segmented setContentOffset:CGSizeMake(-10, -10) forSegmentAtIndex:1];//见图9    /**     5、个性化外观     .tintColor     - setBackgroundImage:forState:barMetrics:                  设置某状态下segment的背景图案     - backgroundImageForState:barMetrics:     - setContentPositionAdjustment:forSegmentType:barMetrics:  自行设置标签内容的偏移量     - contentPositionAdjustmentForSegmentType:barMetrics:                                                                 UISegmentedControlSegmentAny = 0,//所有标签都受影响                                                                 UISegmentedControlSegmentLeft = 1,  //只有左边部分受到影响                                                                 UISegmentedControlSegmentCenter = 2, // 只有中间部分受到影响                                                                 UISegmentedControlSegmentRight = 3,  // 只有右边部分受到影响                                                                 UISegmentedControlSegmentAlone = 4,  // 在只有一个标签的时候生效     - setDividerImage:forLeftSegmentState:rightSegmentState:barMetrics:    设置标签之间分割线的图案     - dividerImageForLeftSegmentState:rightSegmentState:barMetrics:     - setTitleTextAttributes:forState:         通过字符串属性字典 设置标签标题     - titleTextAttributesForState:     */    segmented.tintColor = [UIColor redColor];//中间分割线的颜色               //见图10    [segmented setBackgroundImage:[UIImage imageNamed:@"homeVC_04"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];//正常背景图    [segmented setBackgroundImage:[UIImage imageNamed:@"homeVC_05"] forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];//选中后背景图    NSDictionary *normalTitleAttributes = @{NSForegroundColorAttributeName: [UIColor blueColor],                                                       NSFontAttributeName: [UIFont systemFontOfSize:15]};    NSDictionary *selectedTitleAttributes = @{NSForegroundColorAttributeName: [UIColor whiteColor],                                                         NSFontAttributeName: [UIFont boldSystemFontOfSize:15]};    [segmented setTitleTextAttributes:normalTitleAttributes forState:UIControlStateNormal];     //正常字体的属性    [segmented setTitleTextAttributes:selectedTitleAttributes forState:UIControlStateSelected]; //选中后字体的属性}-(void)segmentedControllerAction:(UISegmentedControl *)segmentedControl{    switch (segmentedControl.selectedSegmentIndex)    {        case 0:            break;        default:            break;    }}

这里写图片描述图1
这里写图片描述图2
这里写图片描述图3
这里写图片描述图4
这里写图片描述图5
这里写图片描述图6
这里写图片描述图7
这里写图片描述图8
这里写图片描述图9
这里写图片描述图10

0 0
原创粉丝点击