// http://www.tuicool.com/articles/yUfURj 使用方法

如上图: 分两步:

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

  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相应事件中选中当前焦点

  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循环处理一下即可

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

  1. Highcharts使用教程(1):制作简单图表

    今天我们要使用JavaScript图表Highcharts制作简单的柱形图,我们已经安装好Highcharts,让我们开始制作图表吧. 步骤一 在网页中添加一个div.设置id,设置图表长.高.代码如 ...

  2. ZAM 3D 制作简单的3D字幕 流程(二)

    原地址:http://www.cnblogs.com/yk250/p/5663907.html 文中表述仅为本人理解,若有偏差和错误请指正! 接着 ZAM 3D 制作简单的3D字幕 流程(一) .本篇 ...

  3. iOS开发UI篇—UITableview控件简单介绍

    iOS开发UI篇—UITableview控件简单介绍 一.基本介绍 在众多移动应⽤用中,能看到各式各样的表格数据 . 在iOS中,要实现表格数据展示,最常用的做法就是使用UITableView,UIT ...

  4. iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一)

    iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一) 一.项目结构和plist文件 二.实现代码 1.说明: 主控制器直接继承UITableViewController // ...

  5. phalcon: eventManager事件管理(结合dispatcher调度控制器)制作简单的acl

    制作简单的acl, dispatcher(专门用来加载或调度或跳转到相应的url地址即XXXcontroller的调度器或控制器,能够在controller执行前对controller进行停止跳转等) ...

  6. canvas制作简单动画

    在画布元素<canvas>中,除了绘制图形.图像.文字外,还可以制作一些简单的动画,制作过程十分简单,主要分为两步操作: 1.自定义一个函数,用于图形的移动或其他动作. 2.使用setIn ...

  7. JSP制作简单登陆

    JSP制作简单登陆界面 运行环境 eclipse+tomcat+MySQL 不知道的可以参考Jsp运行环境--Tomcat 项目列表 这里我先把jsp文件先放在Web-INF外面访问 需要建立的几个文 ...

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

     UITableView 继承自 UIScrollView ,用于实现表格数据展示,支持垂直滚动.  UITableView 需要一个数据源来显示数据,并向数据源查询一共有多少行数据以及每一行显示什么 ...

  9. Photoshop 基础三 制作简单按钮

    要求知识点:移动工具.选择工具.套索工具.多边行工具.文本工具.路径选择工具.裁剪.填充 一.制作简单按钮 1)新建画布,大小随便 2)画圆角矩形工具(同时定义背景色.边框是否需求.边框颜色) 3)打 ...

随机推荐

  1. Java集合系列[2]----LinkedList源码分析

    上篇我们分析了ArrayList的底层实现,知道了ArrayList底层是基于数组实现的,因此具有查找修改快而插入删除慢的特点.本篇介绍的LinkedList是List接口的另一种实现,它的底层是基于 ...

  2. springboot之集成mybatis mongo shiro druid redis jsp

    闲来无事,研究一下spingboot  发现好多地方都不一样了,第一个就是官方默认不支持jsp  于是开始狂找资料  终于让我找到了 首先引入依赖如下: <!-- tomcat的支持.--> ...

  3. Activiti 5.22.0 之自由驳回任务实现(亲测)

    ​ 上篇博文,我们完成一个任务SKIP的实现,说好要给各位看官带来驳回实现的现在,就奉上具体实现和讲解.(其实我感觉我的注释写的已经非常清楚了,哈哈) ​ 依旧是,先说我们的需求和思路. PS: ​ ...

  4. MQTT Server搭建(apache-apollo)和MQtt Client搭建

    目标 本文就MQTT server和client搭建做以下总结,方便测试及开发使用,能基于MQTT软件发送和接收消息. 介绍 MQTT是基于tcp的消息发送,目前JAVA方面有两种实现,分别是mqtt ...

  5. HDU 4010 Query on The Trees

    Problem Description We have met so many problems on the tree, so today we will have a query problem ...

  6. HDU 2546 饭卡(01背包裸题)

    饭卡 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  7. HDU--2011

    多项式求和 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  8. MIT公开课:算法导论 笔记(一)

    课程链接:http://open.163.com/special/opencourse/algorithms.html 第一课:算法分析基础 1.介绍插入排序与归并排序,计算并比较最坏运行时间 2.算 ...

  9. 移动App,AJAX异步请求,实现简单的增、删、改、查

    用ajax发异步请求时,要注意url."AppServer"为后台项目名,"LoginServlet.action"为web.xml中的<url-patt ...

  10. Entity Framework Core 懒加载

    众所周知在EF 6 及以前的版本中,是支持懒加载(Lazy Loading)的,可惜在EF Core 并不支持,必须使用Include方法来支持导航属性的数据加载.不过现在EF Core的开发团队打算 ...