当前位置: 编程技术>移动开发
本页文章导读:
▪新风做浪博客学习(五)代码实现UISlider 和 UISwitch 新风作浪博客学习(五)代码实现UISlider 和 UISwitch .
本次实现的UISlider和UISwitch控件用代码实现的一些简单功能,拖动slider 在label上显示slider的值,当slider值大于90的时候,弹出一个警告;switc.........
▪ ListView中getView的原理+怎么在ListView中放置多个item ListView中getView的原理+如何在ListView中放置多个item
转载:
http://www.cnblogs.com/xiaowenji/archive/2010/12/08/1900579.html
......
▪ 自定义上拉列表样式 自定义下拉列表样式
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
<head>
<meta http-e.........
[1]新风做浪博客学习(五)代码实现UISlider 和 UISwitch
来源: 互联网 发布时间: 2014-02-18
新风作浪博客学习(五)代码实现UISlider 和 UISwitch .
本次实现的UISlider和UISwitch控件用代码实现的一些简单功能,拖动slider 在label上显示slider的值,当slider值大于90的时候,弹出一个警告;switch在变换开关的时候,实现隐藏事件:功能如下:
[img]
[/img]
[img]
[/img]
1.创建一个新工程叫Slider_SwitchDemo; File->New->Project ->single View Application -> next
[img]
[/img]
2.在SSDViewController.h文件中定义三个控件对象,因为需要使用到Alert的委托方法,添加UIAlertViewDelegate协议
3.滑块的高度被忽略,宽度不被忽略,所设置frame的时候,高度设为0;slider值默认范围0--1.0,可以通过mininumValue和maxinumValue两个属性进行设置;在slider滑块拖动改变其值的时候用UIControl类的addTarget方法为UIControlEventValueChanged事件添加一个动作。
[slider addTarget:self action:@selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged];
4.触发事件是弹出一个警告,当滑块值大于90的时候,这个事件才被触发,想在此处提的一点是Alert多个按钮时,怎样去调用其他事件的发生,此处就用到了Alert的委托方法;
Alert的委托方法,用buttonIndex按钮索引值代表按钮,处理按钮事件
5.在说说关于Switch控件的的实现,
触发事件的方法,可以在里面添加其他代码
本次实现的UISlider和UISwitch控件用代码实现的一些简单功能,拖动slider 在label上显示slider的值,当slider值大于90的时候,弹出一个警告;switch在变换开关的时候,实现隐藏事件:功能如下:
[img]
[/img]
[img]
[/img]
1.创建一个新工程叫Slider_SwitchDemo; File->New->Project ->single View Application -> next
[img]
[/img]
2.在SSDViewController.h文件中定义三个控件对象,因为需要使用到Alert的委托方法,添加UIAlertViewDelegate协议
#import <UIKit/UIKit.h> @interface SSDViewController : UIViewController<UIAlertViewDelegate> { UISlider *slider; UILabel *sliderLabel; UISwitch *switchTest; } @end
3.滑块的高度被忽略,宽度不被忽略,所设置frame的时候,高度设为0;slider值默认范围0--1.0,可以通过mininumValue和maxinumValue两个属性进行设置;在slider滑块拖动改变其值的时候用UIControl类的addTarget方法为UIControlEventValueChanged事件添加一个动作。
[slider addTarget:self action:@selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged];
CGRect frame = CGRectMake(10, 50, 200, 0); // slider高度被忽略,所以设置为0 slider = [[UISlider alloc] initWithFrame:frame]; // slider系统默认取值范围是0.0--1.0之间 , 给slider 设置默认值 // slider.value=0.3; // 如果想改变slider值的范围大小,设置为0--100可以这样 slider.minimumValue=0.0; slider.maximumValue = 100.0; // 设置滑块左边值颜色为绿色。系统默认为蓝色 slider.minimumTrackTintColor = [UIColor greenColor]; // 设置滑块右边值为红色,系统默认为白色 slider.maximumTrackTintColor = [UIColor redColor]; // 给slider是指默认值30 slider.value = 30; //continuous属性,是指滑块值在拖地触发滑块值变动 slider.continuous = YES; [slider addTarget:self action:@selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged]; [self.view addSubview:slider];
4.触发事件是弹出一个警告,当滑块值大于90的时候,这个事件才被触发,想在此处提的一点是Alert多个按钮时,怎样去调用其他事件的发生,此处就用到了Alert的委托方法;
-(void)sliderValueChanged:(id)sender { UISlider *sliderValueChange = (UISlider *)sender;//做一个类型装换 if (sliderValueChange == slider) { float value = sliderValueChange.value; slider.value =value; NSLog(@"%f",value); sliderLabel.text = [NSString stringWithFormat:@"%.2f",slider.value]; NSLog(@"------%@",sliderLabel.text); // 当slider滑条值大于90的时候,弹出警告 if (sliderValueChange.value>=90) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"警告" message:@"滑动条值高达90了" delegate:self cancelButtonTitle:@"嗯嗯 我知道了!" otherButtonTitles:@"返回初始位置",nil]; [alert show]; } }
Alert的委托方法,用buttonIndex按钮索引值代表按钮,处理按钮事件
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { if (buttonIndex == 0) { NSLog(@"ceshi"); } if (buttonIndex == 1) { //点击了返回初始位置按钮事,重新h设置按钮的值未初始化时候的值 slider.value=30; sliderLabel.text = [NSString stringWithFormat:@"%.2f",slider.value];//将slider值转换成字符串赋给text } }
5.在说说关于Switch控件的的实现,
CGRect switchFrame = CGRectMake(100, 200, 0, 0); //初始化 switchTest = [[UISwitch alloc] initWithFrame:switchFrame]; //设置switch初始状态为ON switchTest.on = YES; //添加一个触发事件,当点击时候,触发这个事件 [switchTest addTarget:self action:@selector(switchValueChanged:) forControlEvents:UIControlEventValueChanged]; [self.view addSubview:switchTest];
触发事件的方法,可以在里面添加其他代码
-(void)switchValueChanged:(id)sender { if (switchTest.on == YES) { switchTest.hidden=YES; } else { // switchTest.on = YES; } }
[2] ListView中getView的原理+怎么在ListView中放置多个item
来源: 互联网 发布时间: 2014-02-18
ListView中getView的原理+如何在ListView中放置多个item
转载:
http://www.cnblogs.com/xiaowenji/archive/2010/12/08/1900579.html
[3] 自定义上拉列表样式
来源: 互联网 发布时间: 2014-02-18
自定义下拉列表样式
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="Content-Language" content="zh-CN" /> <title>用javascript美化Select</title> <script type="text/javascript"> var childCreate = false; function Offset(e) //取标签的绝对位置 { var t = e.offsetTop; var l = e.offsetLeft; var w = e.offsetWidth; var h = e.offsetHeight - 2; while ( e = e.offsetParent) { t += e.offsetTop; l += e.offsetLeft; } return { top : t, left : l, width : w, height : h } } function loadSelect(obj) { //第一步:取得Select所在的位置 var offset = Offset(obj); //第二步:将真的select隐藏 obj.style.display = "none"; //第三步:虚拟一个div出来代替select var iDiv = document.createElement("div"); iDiv.id = "selectof" + obj.name; iDiv.style.position = "absolute"; iDiv.style.width = offset.width + "px"; iDiv.style.height = offset.height + "px"; iDiv.style.top = offset.top + "px"; iDiv.style.left = offset.left + "px"; iDiv.style.background = "url(/articleimg/2007/04/4687/icon_select.gif) no-repeat right 4px"; iDiv.style.border = "1px solid #3366ff"; iDiv.style.fontSize = "12px"; iDiv.style.lineHeight = offset.height + "px"; iDiv.style.textIndent = "4px"; document.body.appendChild(iDiv); //第四步:将select中默认的选项显示出来 var tValue = obj.options[obj.selectedIndex].innerHTML; iDiv.innerHTML = tValue; //第五步:模拟鼠标点击 iDiv.onmouseover = function() {//鼠标移到 iDiv.style.background = "url(/articleimg/2007/04/4687/icon_select_focus.gif) no-repeat right 4px"; } iDiv.onmouseout = function() {//鼠标移走 iDiv.style.background = "url(/articleimg/2007/04/4687/icon_select.gif) no-repeat right 4px"; } iDiv.onclick = function() {//鼠标点击 if (document.getElementById("selectchild" + obj.name)) { //判断是否创建过div if (childCreate) { //判断当前的下拉是不是打开状态,如果是打开的就关闭掉。是关闭的就打开。 document.getElementById("selectchild" + obj.name).style.display = "none"; childCreate = false; } else { document.getElementById("selectchild" + obj.name).style.display = ""; childCreate = true; } } else { //初始一个div放在上一个div下边,当options的替身。 var cDiv = document.createElement("div"); cDiv.id = "selectchild" + obj.name; cDiv.style.position = "absolute"; cDiv.style.width = offset.width + "px"; cDiv.style.height = obj.options.length * 20 + "px"; cDiv.style.top = (offset.top + offset.height + 2) + "px"; cDiv.style.left = offset.left + "px"; cDiv.style.background = "#f7f7f7"; cDiv.style.border = "1px solid silver"; var uUl = document.createElement("ul"); uUl.id = "uUlchild" + obj.name; uUl.style.listStyle = "none"; uUl.style.margin = "0"; uUl.style.padding = "0"; uUl.style.fontSize = "12px"; cDiv.appendChild(uUl); document.body.appendChild(cDiv); childCreate = true; for (var i = 0; i < obj.options.length; i++) { //将原始的select标签中的options添加到li中 var lLi = document.createElement("li"); lLi.id = obj.options[i].value; lLi.style.textIndent = "4px"; lLi.style.height = "20px"; lLi.style.lineHeight = "20px"; lLi.innerHTML = obj.options[i].innerHTML; uUl.appendChild(lLi); } var liObj = document.getElementById("uUlchild" + obj.name).getElementsByTagName("li"); for (var j = 0; j < obj.options.length; j++) { //为li标签添加鼠标事件 liObj[j].onmouseover = function() { this.style.background = "gray"; this.style.color = "white"; } liObj[j].onmouseout = function() { this.style.background = "white"; this.style.color = "black"; } liObj[j].onclick = function() { //做两件事情,一是将用户选择的保存到原始select标签中,要不做的再好看表单递交后也获取不到select的值了。 obj.options.length = 0; obj.options[0] = new Option(this.innerHTML, this.id); //同时我们把下拉的关闭掉。 document.getElementById("selectchild" + obj.name).style.display = "none"; childCreate = false; iDiv.innerHTML = this.innerHTML; } } } } } </script> <style type="text/css"> select { width: 200px; height: 20px; } </style> </head> <body> <form name="f"> <fieldset> <legend> 用户注册 </legend> <div> <label for="username">帐号</label> <input type="text" id="username" name="username" /> </div> <div> <label for="pwd">密码</label> <input type="password" name="pwd" id="pwd" /> </div> <div> <label for="province">省份</label> <select id="province" name="province"> <option value="10">江西</option> <option value="11">福建</option> <option value="12">广东</option> <option value="13">浙江</option> </select> </div> </fieldset> <input type="submit" value="提交" name="btnSub" /> </form> <script type="text/javascript"> loadSelect(document.f.province); </script> </body> </html>
最新技术文章: