如上图: 分两步:
一、创建320长度背景,高不超过40最好
//segment背景图
UIImageView *segBgImg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"segmented_bg.png"]];
[segBgImg setUserInteractionEnabled:YES];
[segBgImg setFrame:CGRectMake(0, 44, 320, 38)];
//segment实例对象及初始化
UISegmentedControl *segment = [[UISegmentedControl alloc] initWithItems:nil];
segment.selectedSegmentIndex = 0;
[segment insertSegmentWithImage:[UIImage imageNamed:@"segmented_price_all_selected.png"] atIndex:0 animated:NO];
[segment insertSegmentWithImage:[UIImage imageNamed:@"segmented_price_free.png"] atIndex:1 animated:NO];
segment.frame = CGRectMake(10, 5, 184, 28);
[segment setMomentary:YES];
[segment addTarget:self action:@selector(segmentClick:) forControlEvents:UIControlEventValueChanged];
[segBgImg addSubview:segment];
[segment release];
[self.view addSubview:segBgImg];
[segBgImg release];
二、segmentClick相应事件中选中当前焦点
//选择时触发
- (void)segmentClick:(UISegmentedControl *)segment
{
NSInteger index = segment.selectedSegmentIndex;
switch (index) {
case 0: //全部
[segment setImage:[UIImage imageNamed:@"segmented_price_all_selected.png"] forSegmentAtIndex:0];
[segment setImage:[UIImage imageNamed:@"segmented_price_free.png"] forSegmentAtIndex:1];
break;
case 1: //免费
[segment setImage:[UIImage imageNamed:@"segmented_price_all.png"] forSegmentAtIndex:0];
[segment setImage:[UIImage imageNamed:@"segmented_price_free_selected.png"] forSegmentAtIndex:1];
break;
}
}
注: 多个segment切换时用for循环处理一下即可
本文介绍如何使用 iOS 中的 UISegmentedControl 控件,并通过自定义背景和按钮图像实现美观的界面效果。文中提供了具体的实现步骤和代码示例。
823

被折叠的 条评论
为什么被折叠?



