在UITableView顶部制作简单的UISegmentControl实例方法

如上图: 分两步:

一、创建320长度背景,高不超过40最好

[php] view plaincopy

  1. //segment背景图
  2. UIImageView *segBgImg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"segmented_bg.png"]];
  3. [segBgImg setUserInteractionEnabled:YES];
  4. [segBgImg setFrame:CGRectMake(0, 44, 320, 38)];
  5. //segment实例对象及初始化
  6. UISegmentedControl *segment = [[UISegmentedControl alloc] initWithItems:nil];
  7. segment.selectedSegmentIndex = 0;
  8. [segment insertSegmentWithImage:[UIImage imageNamed:@"segmented_price_all_selected.png"] atIndex:0 animated:NO];
  9. [segment insertSegmentWithImage:[UIImage imageNamed:@"segmented_price_free.png"] atIndex:1 animated:NO];
  10. segment.frame = CGRectMake(10, 5, 184, 28);
  11. [segment setMomentary:YES];
  12. [segment addTarget:self action:@selector(segmentClick:) forControlEvents:UIControlEventValueChanged];
  13. [segBgImg addSubview:segment];
  14. [segment release];
  15. [self.view addSubview:segBgImg];
  16. [segBgImg release];

二、segmentClick相应事件中选中当前焦点

[php] view plaincopy

  1. //选择时触发
  2. - (void)segmentClick:(UISegmentedControl *)segment
  3. {
  4. NSInteger index = segment.selectedSegmentIndex;
  5. switch (index) {
  6. case 0: //全部
  7. [segment setImage:[UIImage imageNamed:@"segmented_price_all_selected.png"] forSegmentAtIndex:0];
  8. [segment setImage:[UIImage imageNamed:@"segmented_price_free.png"] forSegmentAtIndex:1];
  9. break;
  10. case 1: //免费
  11. [segment setImage:[UIImage imageNamed:@"segmented_price_all.png"] forSegmentAtIndex:0];
  12. [segment setImage:[UIImage imageNamed:@"segmented_price_free_selected.png"] forSegmentAtIndex:1];
  13. break;
  14. }
  15. }
  1. - (void)viewDidLoad {
  2. NSArray *segmentedArray = [[NSArray alloc]initWithObjects:@"1",@"2",@"3",@"4",nil];
  3. //初始化UISegmentedControl
  4. UISegmentedControl * segmentedControl = [[UISegmentedControl alloc]initWithItems:segmentedArray];
  5. segmentedControl.frame = CGRectMake(60.0, 10.0, 200.0, 50.0);
  6. segmentedControl.segmentedControlStyle = 2;
  7. [segmentedControl setTitle:@"two" forSegmentAtIndex:1];//设置指定索引的题目
  8. [segmentedControl setImage:[UIImage imageNamed:@"lan.png"] forSegmentAtIndex:3];//设置指定索引的图片
  9. [segmentedControl insertSegmentWithImage:[UIImage imageNamed:@"mei.png"] atIndex:2 animated:NO];//在指定索引插入一个选项并设置图片
  10. [segmentedControl insertSegmentWithTitle:@"insert" atIndex:3 animated:NO];//在指定索引插入一个选项并设置题目
  11. [segmentedControl removeSegmentAtIndex:0 animated:NO];//移除指定索引的选项
  12. [segmentedControl setWidth:70.0 forSegmentAtIndex:2];//设置指定索引选项的宽度
  13. [segmentedControl setContentOffset:CGSizeMake(10.0,10.0) forSegmentAtIndex:1];//设置选项中图片等的左上角的位置
  14. //获取指定索引选项的图片imageForSegmentAtIndex:
  15. UIImageView *imageForSegmentAtIndex = [[UIImageView alloc]initWithImage:[segmentedControl imageForSegmentAtIndex:1]];
  16. imageForSegmentAtIndex.frame = CGRectMake(60.0, 100.0, 30.0, 30.0);
  17. //获取指定索引选项的标题titleForSegmentAtIndex
  18. UILabel *titleForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(100.0, 100.0, 30.0, 30.0)];
  19. titleForSegmentAtIndex.text = [segmentedControl titleForSegmentAtIndex:0];
  20. //获取总选项数segmentedControl.numberOfSegments
  21. UILabel *numberOfSegments = [[UILabel alloc]initWithFrame:CGRectMake(140.0, 100.0, 30.0, 30.0)];
  22. numberOfSegments.text = [NSString stringWithFormat:@"%d",segmentedControl.numberOfSegments];
  23. //获取指定索引选项的宽度widthForSegmentAtIndex:
  24. UILabel *widthForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(180.0, 100.0, 70.0, 30.0)];
  25. widthForSegmentAtIndex.text = [NSString stringWithFormat:@"%f",[segmentedControl widthForSegmentAtIndex:2]];
  26. segmentedControl.selectedSegmentIndex = 2;//设置默认选择项索引
  27. segmentedControl.tintColor = [UIColor redColor];
  28. segmentedControl.segmentedControlStyle = UISegmentedControlStylePlain;//设置样式
  29. segmentedControl.momentary = YES;//设置在点击后是否恢复原样
  30. [segmentedControl setEnabled:NO forSegmentAtIndex:4];//设置指定索引选项不可选
  31. BOOL enableFlag = [segmentedControl isEnabledForSegmentAtIndex:4];//判断指定索引选项是否可选
  32. NSLog(@"%d",enableFlag);
  33. }

注: 多个segment切换时用for循环处理一下即可

时间: 2024-07-28 22:06:12

在UITableView顶部制作简单的UISegmentControl实例方法的相关文章

使用 FineUI 制作简单的购物车页面(源代码免费下载,另附 24 张专业版截图)

起因 最初是一位 FineUI 网友对购物车功能的需求,需要根据产品单价和数量来计算所有选中商品的总价. 这个逻辑最好在前台使用JavaScript实现,如果把这个逻辑移动到后台C#实现,则会导致过多的AJAX请求而影响用户体验. 最终效果 准备数据 在生成页面之前,我们需要准备购物车的数据,这里只是简单的用表格来模拟数据: 1 protected DataTable GetCartDataTable() 2 { 3 DataTable table = new DataTable(); 4 ta

JSP制作简单登陆

JSP制作简单登陆界面 运行环境 eclipse+tomcat+MySQL 不知道的可以参考Jsp运行环境--Tomcat 项目列表 这里我先把jsp文件先放在Web-INF外面访问 需要建立的几个文件在图上.jsp 还要导入MySQL的jar包mysql-5.0.5.jar,导到WEB-INF中的lib文件夹就可以不需要Bulid Path 开始编写代码: 代码演示: index.jsp就好像一般网站的首页一样感觉,将header.jsp和footer.jsp引入其中 <%@ page lan

ArcGIS利用DEM制作简单三维

利用DEM数据镶嵌后,矢量数据裁剪得到研究范围的DEM数据,在ARCScene中进行三维制作 ArcGIS利用DEM制作简单三维 点击学习我的系统教程哦

iOS开发基础-UITableView控件简单介绍

 UITableView 继承自 UIScrollView ,用于实现表格数据展示,支持垂直滚动.  UITableView 需要一个数据源来显示数据,并向数据源查询一共有多少行数据以及每一行显示什么内容等.凡是遵守 UITableViewDataSource 协议的Objc对象,都可以是 UITableView 的数据源.  - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView  返回共有多少组数据.  - (NSI

如何制作简单的 3D 打印模型

Hi 大家好! 了解一个方兴未艾,但极为有趣的话题 - 3D 打印 . 为了帮助大家对3D打印有一个初步的感性认识,我在线制作了一款可用于3D打印的model, 大家可以先通过体验这个在线 model 的3D 效果,体验一下让我们耳目为之一新的感觉 J ~ 首先打开URL : http://www.123dapp.com/Catch/2014-4-1-21-5-35/2258051 .首次进入时先看到的是一张2维的平面图片,然后请点选左下 3D VIEW . 待图像加载结束,就可以通过鼠标的拖曳

利用replaceChild制作简单的吞噬效果【jsDEMO】

[功能说明] 利用replaceChild制作简单的吞噬效果 [HTML代码说明] <ul class="list" id="list"> <li class="in">1</li> <li class="in">2</li> <li class="in">3</li> <li class="in"

利用removeChild制作简单的倒序删除效果【jsDEMO】

[功能说明] 利用removeChild制作简单的倒序删除效果 [HTML代码说明] <ul class="list" id="list"> <li class="in">1</li> <li class="in">2</li> <li class="in">3</li> <li class="in"

利用for循环制作简单的99乘法表

利用for循环制作简单的99乘法表 public class chengfabiao { public static void main(String[] args) { for(int a = 1;a <= 9;a++) { for(int b = 1; b <= a;b++) { int res = a * b; System.out.print("["+a+"x"+b+"="+res+"]"); } Syst

BASH 脚本制作简单 Workflow - 更新 2014/6/17 12:00

因为需要,我创建了一个脚本叫 wf.sh (随意起什么名字),它可以读取当前目录下的 config.ini 配置文件来解析并执行工作流任务(Workflow). 直接上代码: config.ini Workflow.Name = example Workflow.Description = my work flow example \n and I know what's going on here. #Workflow.StartJob = job1 Workflow.NextJobCount