很久之前用OC编写
//UISegmentedControl
self.segmentControlView = [[UISegmentedControl alloc]initWithItems:@[@"我的",@"公共"]];
//tintColor改变UISegmentedControl默认的选中颜色
self.segmentControlView.tintColor = [UIColor redColor];
[self.segmentControlView setFrame:CGRectMake(10, 300, 200,50 )];
//apportionsSegmentWidthsByContent = YES,UISegmentedControl会根据其内容而改变前提是 [self.segmentControlView setTranslatesAutoresizingMaskIntoConstraints:NO];
[self.segmentControlView addTarget:self action:@selector(segmentControlViewOnClick:) forControlEvents:UIControlEventValueChanged];
self.segmentControlView.apportionsSegmentWidthsByContent = NO;
//momentary = YES , we don't keep showing selected state after tracking ends. default is NO,点击其中一个Item 和uibutton的点击事件一样,显示一下selected state之后恢复普通状态
self.segmentControlView.momentary = YES;
[self.view addSubview: self.segmentControlView];
Swift 于20150120
segmentedControlStyle 在iOS7被Deprecated,由tintColor取代
segmentView = UISegmentedControl(items: ["行政管理","业务管理","其他"])
//默认状态item字的颜色
let titleTextAttributes = [NSForegroundColorAttributeName : UIColor.blackColor() as AnyObject]
segmentView.setTitleTextAttributes(titleTextAttributes, forState: UIControlState.Normal)
//选中状态item字的颜色
segmentView.setTitleTextAttributes([NSForegroundColorAttributeName : UIColor.redColor() as AnyObject], forState: UIControlState.Selected)
//选中状态item的颜色
segmentView.tintColor = kMainSettingColor
//momentary=true显示一下selected state之后恢复普通状态
segmentView.momentary = false
// segmentView.backgroundColor = UIColor.lightGrayColor()
segmentView.frame = CGRectMake(10, 10, CGRectGetWidth(self.view.frame)-20, CGRectGetHeight(segmentView.bounds))
segmentView.selectedSegmentIndex = 0
segmentView.addTarget(self, action: Selector("action_segmentValueChanged:"), forControlEvents: UIControlEvents.ValueChanged)
self.view.addSubview(segmentView)
选中事件:
func action_segmentValueChanged(sender:UISegmentedControl){
debugPrint(sender.selectedSegmentIndex)
}