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

IOS 自定义 UISegmentedControl

2015-05-18 17:52 363 查看
先看效果。。。。



毫不含糊,直接上代码

-(void)createSegmentedControl{
    
    NSArray *arr=@[@"提醒", @"历史",@"好友"];
    UISegmentedControl *segmentedControl = [[UISegmentedControl alloc]initWithItems:arr];
    if (iPhone4||iPhone5) {
         segmentedControl.frame = CGRectMake(0, 0, 180.0, 33.0);
    }else{
         segmentedControl.frame = CGRectMake(0, 0, 240.0, 33.0);
    }
   
    segmentedControl.center=CGPointMake(SIZEWIDTH/2, 22);

    ////背景 点击或未点击
    [segmentedControl setBackgroundImage:[UIImage imageNamed:@"messsegent6"] forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
    [segmentedControl setBackgroundImage:[UIImage imageNamed:@"messsegent5"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
   
   
    ////中间的分割线
    [segmentedControl setDividerImage:[UIImage imageNamed:@"messline"] forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
    [segmentedControl setDividerImage:[UIImage imageNamed:@"messline"] forLeftSegmentState:UIControlStateHighlighted rightSegmentState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];
    

    NSDictionary *dic1 = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor],UITextAttributeTextColor ,[UIColor clearColor],UITextAttributeTextShadowColor ,nil];
    [segmentedControl setTitleTextAttributes:dic1 forState:UIControlStateNormal];
    
    NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:HEXRGB(0xf7f539),UITextAttributeTextColor ,[UIColor clearColor],UITextAttributeTextShadowColor ,nil];
    [segmentedControl setTitleTextAttributes:dic2 forState:UIControlStateSelected];
    segmentedControl.backgroundColor=[UIColor clearColor];
    segmentedControl.layer.borderWidth=0.5;
    segmentedControl.layer.borderColor=[[UIColor whiteColor]CGColor];
    segmentedControl.layer.masksToBounds=YES;
    segmentedControl.layer.cornerRadius=16.5;
    segmentedControl.selectedSegmentIndex=0;
    [segmentedControl addTarget:self action:@selector(segChange:) forControlEvents:UIControlEventValueChanged];

    self.navigationItem.titleView=segmentedControl;
    
}

-(void)segChange:(UISegmentedControl *)sender{
    
    
    switch (sender.selectedSegmentIndex) {
        case 0:
 
            break;
        case 1:
         
            break;

        case 2:
       
            break;

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