- 浏览: 515465 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
tangyunliang:
大哥你太历害了谢谢
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
u013015029:
LZ,请问下,在// 添加消息到聊天窗口 , 这里获取Ed ...
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
endual:
怎么保持会话,我搞不懂啊
Android基于XMPP Smack Openfire开发IM【一】登录openfire服务器 -
donala_zq:
显示:[2013-11-30 11:50:36 - Andro ...
android-----------新浪微博 -
donala_zq:
哥,运行不了啊
android-----------新浪微博
实现的功能:1)不使用xib构建UI,包括一个slider、两个label;2)改变slider的值,label中slider的值随之改变;3)改变slider的值,缩放另一个label中的文本(实际就是改变该label字体的大小)
关键词:slider 缩放 不使用xib
1、创建一个Single View Application工程,命名为:SliderDemo,如下图
[img]
[/img]
2、我们不使用xib构建UI,所以现删除ViewController.xib文件
3、修改ViewController.h后如下:
4、修改ViewController.m后如下:
5、编译、运行,效果如下
[img]
[/img]
6、总结:xib构建UI方式与写代码方式比较?
1)通过上面代码的编写,仅仅构建一个slider和两个label就很麻烦,不断的修改frame值、调试,才能达到想要的UI效果;并且要alloc很多对象,要控制好内存,防止泄露。可想而知,如果要通过写代码构建一个复杂的UI界面,一定是件很“痛苦”的事儿 。
2)写代码方式也有其优点,比如代码条理比较清晰,出现bug容易定位;用xib的话,构建UI界面比较方便、容易,直接拖动或输入坐标值即可,但是如果控件或事件较多时,N多的连接显得比较乱,而且出现问题不容易查找,尤其连线之后如果再更改IBOulet或IBAction的名称等,更容易出现莫名奇妙的错误。
3)个人感觉,简单的界面尽量用写代码方式,如果界面比较复杂且涉及的事件不太多的话可以用xib实现。见仁见智啦!
关键词:slider 缩放 不使用xib
1、创建一个Single View Application工程,命名为:SliderDemo,如下图
[img]
[/img]
2、我们不使用xib构建UI,所以现删除ViewController.xib文件
3、修改ViewController.h后如下:
#import <UIKit/UIKit.h> @interface ViewController : UIViewController //添加代码 @property(nonatomic,retain)UILabel *sliderValueLabel; @property(nonatomic,retain)UISlider *slider; @property(nonatomic,retain)UILabel *xLabel; @property(assign,nonatomic)CGFloat initialFontSize; @end
4、修改ViewController.m后如下:
// // ViewController.m // SliderDemo // // Created by Yanguang Zhang on 12-10-24. // Copyright (c) 2012年 __MyCompanyName__. All rights reserved. // #import "ViewController.h" @interface ViewController () @end @implementation ViewController //添加代码 @synthesize slider; @synthesize sliderValueLabel; @synthesize xLabel; @synthesize initialFontSize; //修改代码 /* - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. }*/ -(void)loadView{ UIView *myView = [[UIView alloc]initWithFrame:[UIScreen mainScreen].applicationFrame]; [myView setBackgroundColor:[UIColor whiteColor]]; self.view = myView; //初始化视图 [self initViews]; } -(void)initViews{ //初始化slider //sliderValueLabel = [[UILabel alloc]initWithFrame:CGRectMake(20, 30, 50, 40)]; //显示slider值的label sliderValueLabel = [[UILabel alloc]init]; CGRect frame = sliderValueLabel.frame; frame.origin.x = 20; frame.origin.y = 30; frame.size.width = 50; frame.size.height = 40; sliderValueLabel.frame = frame; sliderValueLabel.backgroundColor = [UIColor greenColor]; sliderValueLabel.textAlignment = UITextAlignmentCenter; sliderValueLabel.text = @"0"; //加入到view中 [self.view addSubview:sliderValueLabel]; //slider,通过sliderValueLabel的相对位置定义frame frame.origin.x = CGRectGetMaxX(frame)+10; frame.origin.y = CGRectGetMinY(frame); frame.size.width = 200; frame.size.height = 40; slider = [[UISlider alloc]initWithFrame:frame]; slider.minimumValue = 0;//最小值 slider.maximumValue = 25;//最大值 slider.value = 0;//执行初始值 //设置响应事件(此操作同:使用xib中时将事件与操作IBAction进行关联) [slider addTarget:self //事件委托对象 action:@selector(sliderValueChanged) //处理事件的方法 forControlEvents:UIControlEventValueChanged//具体事件 ]; //加入到view中 [self.view addSubview:slider]; //X label frame.origin.x = 0; frame.origin.y = CGRectGetMaxY(sliderValueLabel.frame)+10; frame.size.width = self.view.frame.size.width; frame.size.height = self.view.frame.size.height-frame.origin.y; xLabel = [[UILabel alloc]initWithFrame:frame]; xLabel.backgroundColor = [UIColor yellowColor]; xLabel.textAlignment = UITextAlignmentCenter; xLabel.text = @"X"; initialFontSize = xLabel.font.pointSize; //NSLog(@"initialFontSize=%.2f",initialFontSize); //加入到View中 [self.view addSubview:xLabel]; } //slider值改变时进行处理 -(void)sliderValueChanged{ //NSLog(@"sliderValueChanged"); //更新sliderValueLabel的值 sliderValueLabel.text = [[NSString alloc]initWithFormat:@"%.0f",slider.value]; //缩放xLabel的内容 CGFloat newFontSize = initialFontSize*(slider.value+1); //NSLog(@"newFontSize=%.2f",newFontSize); xLabel.font = [xLabel.font fontWithSize:newFontSize]; } - (void)viewDidUnload { [super viewDidUnload]; slider = nil; sliderValueLabel = nil; xLabel = nil; // Release any retained subviews of the main view. } -(void)dealloc{ [super dealloc]; [sliderValueLabel release]; [slider release]; [xLabel release]; } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); } @end
5、编译、运行,效果如下
[img]
[/img]
6、总结:xib构建UI方式与写代码方式比较?
1)通过上面代码的编写,仅仅构建一个slider和两个label就很麻烦,不断的修改frame值、调试,才能达到想要的UI效果;并且要alloc很多对象,要控制好内存,防止泄露。可想而知,如果要通过写代码构建一个复杂的UI界面,一定是件很“痛苦”的事儿 。
2)写代码方式也有其优点,比如代码条理比较清晰,出现bug容易定位;用xib的话,构建UI界面比较方便、容易,直接拖动或输入坐标值即可,但是如果控件或事件较多时,N多的连接显得比较乱,而且出现问题不容易查找,尤其连线之后如果再更改IBOulet或IBAction的名称等,更容易出现莫名奇妙的错误。
3)个人感觉,简单的界面尽量用写代码方式,如果界面比较复杂且涉及的事件不太多的话可以用xib实现。见仁见智啦!
发表评论
-
新风作浪博客学习(十九)在iOS虚拟键盘上添加动态隐藏按钮
2013-06-08 09:19 814为了给用户比较良好的交付,想在键盘上添加一个按钮,实时根据键盘 ... -
新风作浪博客学习(十八)openURL的使用(iOS调用系统电话、浏览器、地图、邮件等) .
2013-06-08 09:19 930今天遇见一行代码实现打开一个网页,比起印象里的UIWebVie ... -
新风作浪博客学习(十七)UIImageView响应点击事件 .
2013-06-08 09:19 664有时候会遇到点击一张图片,然后让这张图片触发一个事件,或者是跳 ... -
新风作浪博客学习(十六)Navigation + Tab Bar 常用组合框架 .
2013-06-07 08:50 1191看到很多项目中都采用的是Navigation加Tab Bar组 ... -
新风作浪博客学习(十五)google地图定位小Demo .
2013-06-07 08:50 1057[img][/img]今天写的是一个简单功能的google地图 ... -
新风作浪博客学习(十四)怎样向iPhone模拟器中添加图片 .
2013-06-07 08:50 740在我们做项目中可能需要使用图库,模拟器是有图库的,但是如何像其 ... -
新风作浪博客学习(十三)表视图的分组分区和索引分区 .
2013-06-07 08:50 742本次实现的是表视图的分区和索引,代码和前面都差不多,主要还是代 ... -
新风作浪博客学习(十二)代码实现UITableViewCell表视图单元定制 .
2013-06-07 08:49 928通常情况下我们会希望单元格UITableViewCell显示自 ... -
新风作浪博客学习(十一)UITableViewCell的标记、移动、删除、插入 .
2013-06-06 09:15 1054这篇文章是建立在 代码实现 UITableView与UITa ... -
新风作浪博客学习(十)代码实现 UITableView与UITableViewCell .
2013-06-06 09:14 1108我们常用的表格类视图就是用 UITableView与UITab ... -
新风作浪博客学习(九)两个UIPickerView控件间的数据依赖 .
2013-06-06 09:14 1038本篇实现功能是两个选取器的关联操作,滚动第一个滚轮第二个滚 ... -
新风作浪博客学习(八)代码实现UIPickerView .
2013-06-06 09:14 1235先说一下当个组件选取器,我们创建一个数组NSAray来保存选取 ... -
新风作浪博客学习(七)代码 实现UIDatePicker控件 和 Tab Bar 视图切换 .
2013-06-06 09:15 1068感觉代码写控件都一个理,先在ViewDidLoad中创建控件对 ... -
新风作浪博客学习(六)ios 视图切换翻页效果 .
2013-06-05 11:18 1019本文写的是视图切换,涉及到的内容有 1.实现代码添加Navi ... -
新风作浪博客学习(五)代码实现UISlider 和 UISwitch .
2013-02-18 09:15 1071本次实现的UISlider和UISwi ... -
新风作浪博客学习(四)把plist里数据显示在textField上 .
2013-02-18 09:15 880在代码实现Lable 、textFie ... -
新风作浪博客学习(三)NSBundle读取图片 plist文件和txt文件
2013-02-18 09:15 1620本文想简单介绍一下NSBundle读取图片到视图上,读取pli ... -
新风作浪博客学习(二)代码实现Lable 、textField创建界面以及键盘的处理
2013-02-18 09:15 1137今天写的是用代码实现一个简单界面,代码重复率比较高,可读性不是 ... -
新风作浪博客学习(一)plist文件读写操作
2013-02-18 09:14 1297文件plist 全名Property List,属性列表文件, ... -
GCDiscreetNotificationView提示视图
2013-06-05 11:17 522先看一下效果图: [img] ...
相关推荐
博文http://blog.csdn.net/m_changgong/article/details/8107957源代码
jssor.slider-21.1.6.mini.js
可拖拽组件slider.js使用方法详解 基于 mithril.js ,javascript ,scss写一个可拖动的滑块组件,供大家参考,具体内容如下 问题描述: 需求需要实现一个可拖动的滑块组件,但是又不能用UI框架,只好自己动手写一...
ASP.NET AJAX控件之Slider.rar
WPF自定义进度条控件和slider 滑块控件源代码,WPF样式可自定义,ProgressBar,Slider,共享学习.
Slider控件的使用 Slider控件的使用 Slider控件的使用 Slider控件的使用
ASP.NET AJAX控件之Slider视频教程
MFC界面跳转、MFC中Slider控件的使用、MFC中线程的使用!
注塑模具斜顶Slider设计介绍PPT学习教案.pptx
ui.slider.js 用法: $(document).ready(function(){ $("#example").slider(); }); CSS文件:http://dev.jquery.com/view/trunk/themes/flora/flora.all.css 选项说明:...
Revolution slider for wordpress
一个滚动条滑块控件[SliderOCX.rar]-精品源代码
jquery.ui.datepicker.js, jquery.ui.dialog.js, jquery.ui.position.js, jquery.ui.progressbar.js, jquery.ui.slider.js, jquery.ui.tabs.js * Copyright (c) 2012 AUTHORS.txt; Licensed MIT */
slider控件,可以实现控制几个slider
jquery.nivo.slider.pack
Slider 控件
Slider 有刻度的滑块demo基于jquery UI
一)功能描述 ...DirectUI:包含一些常用控件 button, checkbox, groupbox, label, progress, radiobox, slider等,可以通过XML来解析控件支持点击换页、支持拖动换页 二)源码联系我 QQ:43599123
ui.slider.js 用法: $(document).ready(function(){ $("#example").slider(); }); CSS文件:http://dev.jquery.com/view/trunk/themes/flora/flora.all.css 选项说明:...