技术标签: UISegmentedControl iOS 控件
当用户输入不仅仅是布尔值时,可使用分段控件(UISegmentedControl)。分段控件提供一栏按钮(有时称为按钮栏),但只能激活其中一个按钮。分段控件会导致用户在屏幕上看到的内容发生变化。它们常用于在不同类别的信息之间选择,或在不同的应用屏幕之间切换。下面介绍基本属性和基本方法的使用。
NSArray *segmentedArray = [[NSArrayalloc]initWithObjects:@"1",@"2",@"3",@"4",nil];
//初始化UISegmentedControl
UISegmentedControl *segmentedControl = [[UISegmentedControlalloc]initWithItems:segmentedArray];
segmentedControl.frame = CGRectMake(20.0, 20.0, 250.0, 50.0);
segmentedControl.selectedSegmentIndex = 2;//设置默认选择项索引
segmentedControl.tintColor = [UIColor redColor];
//有基本四种样式
segmentedControl.segmentedControlStyle = UISegmentedControlStylePlain;//设置样式
//segmentedControl.segmentedControlStyle = UISegmentedControlStyleBordered;//设置样式
//segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;//设置样式
//segmentedControl.segmentedControlStyle = UISegmentedControlStyleBezeled;//设置样式
// segmentedControl.momentary = YES;//设置在点击后是否恢复原样 现在好像没有这个方法;
[segmentedControl setTitle:@"two" forSegmentAtIndex:1];//设置指定索引的题目
[segmentedControl setImage:[UIImage imageNamed:@"btn_jyy.png"] forSegmentAtIndex:3];//设置指定索引的图片
[segmentedControl insertSegmentWithImage:[UIImage imageNamed:@"mei.png"] atIndex:2 animated:NO];//在指定索引插入一个选项并设置图片
[segmentedControl insertSegmentWithTitle:@"insert" atIndex:3 animated:NO];//在指定索引插入一个选项并设置题目
[segmentedControl removeSegmentAtIndex:0 animated:NO];//移除指定索引的选项
// [segmentedControl setWidth:70.0 forSegmentAtIndex:2];//设置指定索引选项的宽度
// [segmentedControl setContentOffset:CGSizeMake(10.0,10.0) forSegmentAtIndex:4];//设置选项中图片等的左上角的位置
//获取指定索引选项的图片imageForSegmentAtIndex:
UIImageView *imageForSegmentAtIndex = [[UIImageViewalloc]initWithImage:[segmentedControl imageForSegmentAtIndex:1]];
imageForSegmentAtIndex.frame = CGRectMake(60.0, 120.0, 30.0, 30.0); ;
//获取指定索引选项的标题titleForSegmentAtIndex
UILabel *titleForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(100.0, 160.0, 30.0, 30.0)];
titleForSegmentAtIndex.text = [segmentedControl titleForSegmentAtIndex:0];
//获取总选项数segmentedControl.numberOfSegments
UILabel *numberOfSegments = [[UILabel alloc]initWithFrame:CGRectMake(140.0, 170.0, 30.0, 30.0)];
numberOfSegments.text = [NSString stringWithFormat:@"%d",segmentedControl.numberOfSegments];
//获取指定索引选项的宽度widthForSegmentAtIndex:
UILabel *widthForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(180.0, 210.0, 70.0, 30.0)];
widthForSegmentAtIndex.text = [NSString stringWithFormat:@"%f",[segmentedControl widthForSegmentAtIndex:2]];
// [segmentedControl setEnabled:NO forSegmentAtIndex:4];//设置指定索引选项不可选
// BOOL enableFlag = [segmentedControl isEnabledForSegmentAtIndex:4];//判断指定索引选项是否可选
[mySegmentedControladdTarget:selfaction:@selector(segmentAction:)forControlEvents:UIControlEventValueChanged]; //添加委托方法
//具体委托方法实例
-(void)segmentAction:(UISegmentedControl *)Seg{
NSInteger Index = Seg.selectedSegmentIndex;
NSLog(@"Index %i", Index);
switch (Index) {
case 0:
[self selectmyView1];
break;
case 1:
[self selectmyView2];
break;
case 2:
[self selectmyView3];
break;
case 3:
[self selectmyView4];
break;
case 4:
[self selectmyView5];
break;
case 5:
[self selectmyView6];
break;
default:
break;
}
}
基本属性、方法如上,大家在实际开发中可根据实际需求选取适当属性和方法。
使用技巧:
在导航栏中添加UISegmentedControl ,实现的效果:
实现的代码:
//自定义UISegmentedcontrol
UISegmentedControl *segmentedControl=[[UISegmentedControl alloc] initWithFrame:CGRectMake(80.0f, 8.0f, 200.0f, 30.0f) ];
[segmentedControl insertSegmentWithTitle:@"Food to eat" atIndex:0 animated:YES];
[segmentedControl insertSegmentWithTitle:@"Food to avoid" atIndex:1 animated:YES];
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
segmentedControl.momentary = YES;
segmentedControl.multipleTouchEnabled=NO;
[segmentedControl addTarget:self action:@selector(Selectbutton:) forControlEvents:UIControlEventValueChanged];
UIBarButtonItem *segButton = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl]; //自定义UIBarButtonItem,封装定义好的UIsegmented。
[segmentedControl release];
self.navigationItem.rightBarButtonItem = segButton; //添加到导航栏中
[segButton release];
文章浏览阅读2k次。前言Github:https://github.com/yihonglei/thinking-in-spring一Spring数据源简介Spring提供了在Spring上下文中配置数据源bean的多种方式,包括:1、通过JDBC驱动程序定义的数据源。在Spring中,通过JDBC驱动定义数据源是最简单的配置方式。Spring提供了三个这样的数据源类(均位于org.spri..._defaultreadonly
文章浏览阅读2.2k次,点赞2次,收藏2次。项目源码:https://github.com/yicaifenchen8/Java_GraphicsImage.git核心代码public class Main { public static void main(String[] args) { drawImage(); } public static void drawImage(){ ..._java graphics.fromimage
文章浏览阅读7.4k次。Spark mllib 自带了许多机器学习算法,它能够用来进行模型的训练和预测。当使用这些算法来构建模型的时候,我们需要一些指标来评估这些模型的性能,这取决于应用和和其要求的性能。Spark mllib 也提供一套指标用来评估这些机器学习模型。具体的机器学习算法归入更广泛类型的机器学习应用,例如:分类,回归,聚类等等,每一种类型都很好的建立了性能评估指标。本节主要分享分类器模型评价指标。RO..._area under precision-recall curve (auprc) 作为评价指标
文章浏览阅读2.9k次。一:前言 前段时间在编译kernel的时候发现rootfs挂载不上。相同的root选项设置旧版的image却可以。为了彻底解决这个问题。研究了一下rootfs的挂载过程。特总结如下,希望能给这部份知识点比较迷茫的朋友一点帮助。 二:rootfs的种类 总的来说,rootfs分为两种:虚拟rootfs和真实rootfs.现在kernel的发展趋势是将更多的功能放到用_linux rootfs 文件系统挂载
文章浏览阅读2.4w次,点赞12次,收藏58次。lock=0state=0alltime=0function OnEvent(event, arg) if(event=="PROFILE_ACTIVATED")then EnablePrimaryMouseButtonEvents(true) end OutputLogMessage("Event: "..event.." Arg: "..arg.."\n") if(event=="MOUSE_BUTTON_PRESSED" and arg==7 )then Out_pubg脚本
文章浏览阅读149次。教师的教学工作是有计划性的,在正式上课之前,对要进行的教学任务及流程进行详细的计划,YJBYS小编为大家准备了最新冀教版五年级数学上册教学计划,希望对你有所帮助!一、班级学生情况分析:全班共有学生74人,大部分学生对数学有上进心,但接受能力还有待提高,学习态度还需不断端正。有部分学生自觉性不够,不能及时完成作业等,对于学习数学有一定困难。所以在新的学期里,在端正学生学习态度的同时,应加强培养学生各..._冀教版五年级数学上册教学进度计划博客
文章浏览阅读914次。今天在测试cron定时任务实现rsync自动备份时,先将以下命令写入脚本~/etc_backup.sh:#!/bin/bashrsync -avz /etc [email protected]::backup然后执行crontab -e命令,在里面添加如下命令,设置每3分钟定时执行etc_backup.sh脚本,实现备份:*3/ * * * * /usr/bin/sh ~/e..._crontab不执行rsync
文章浏览阅读362次。笔者使用的Navicat Premium 12启动界面截屏:请注意是64位的。笔者win7 64位系统。连接Oracle时提示“oracle library is not loaded”。解决方法:1.前往“http://www.oracle.com/technetwork/database/database-technologies/instant-client/downloads/i..._navicat换环境后报错
文章浏览阅读707次。1.用户空间的mmap系统调用void *mmap(void *start,size_t length,int prot,int flags,int fd,off_t offsize);函数的作用:将物理内存的一块区域映射到用户空间,通过用户空间指针的操作来读写物理内存区域的数据。具体参数含义start : 指向欲映射的内存起始地址,通常设为 NULL,代表让系统自动选定地址,映_linux驱动 mmap函数实现
文章浏览阅读143次。【设计】24款线框图相关工具及资源大放送线框是一个非常有用的网页开发工具,正确使用有助于帮助Web开发者节省时间和精力!下面介绍一些常见的线框工具,希望对Web设计师有帮助。 1. 960.gs Templates for Inkscape 960个Inkscape模板集合。 2. Android Patterns _960.gs templates for inkscape
文章浏览阅读363次。using System;using UnityEngine;using XLua;namespace XLuaTest{ public class PropertyChangedEventArgs : EventArgs { public string name; public object value; } public class InvokeLua : MonoBehaviour { [CSharp._04_luaobjectorented:
文章浏览阅读423次。文章目录题意题解题目链接题意把nnn只兔子分组,每两只兔子之间有一个亲密度,当然亲密度也有可能是负数,表示这两只兔子有仇.一个组的亲密度是这一组里所有兔子两两的亲密度之和,问合理分组下最大的总亲密度.n≤16n\leq16n≤16.题解状压dpdpdp,枚举集合,dpSdp_SdpS表示集合SSS表示的兔子们合理分组的最大总亲密度.则从小到大枚举集合,假设SSS的兔子全部被分在一组里,得到SSS的初始值.然后枚举SSS的真子集iii,用dpS⊕i+dpidp_{S \oplus i}+d_u - grouping