当前位置:  编程技术>移动开发
本页文章导读:
    ▪新风做浪博客学习(五)代码实现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协议
#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>

 


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
编程技术>移动开发 iis7站长之家
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3