iOS代码实现常用控件之Slider 文字缩放
来源:互联网 发布:文件夹恢复软件 编辑:程序博客网 时间:2024/06/11 10:04
iOS代码实现常用控件之Slider 文字缩放
- 修改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
修改ViewController.m后如下:
#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
编译、运行,效果如下:
总结:xib构建UI方式与写代码方式比较?
1)通过上面代码的编写,仅仅构建一个slider和两个label就很麻烦,不断的修改frame值、调试,才能达到想要的UI效果;并且要alloc很多对象,要控制好内存,防止泄露。可想而知,如果要通过写代码构建一个复杂的UI界面,一定是件很“痛苦”的事儿 。
2)写代码方式也有其优点,比如代码条理比较清晰,出现bug容易定位;用xib的话,构建UI界面比较方便、容易,直接拖动或输入坐标值即可,但是如果控件或事件较多时,N多的连接显得比较乱,而且出现问题不容易查找,尤其连线之后如果再更改IBOulet或IBAction的名称等,更容易出现莫名奇妙的错误。
0 0
- iOS代码实现常用控件之Slider 文字缩放
- iOS屏幕适配之通过代码实现控件按比例缩放
- iOS 控件 slider
- IOS第二十二天——IOS控件之Slider
- iOS cocos2d实现slider(滑块)控件效果源码
- iOS cocos2d实现slider(滑块)控件效果源码
- IOS 控件 自定义UISlider Slider
- iOS - UIScrollView控件实现图片缩放功能(还需补充代码)
- jQuery UI 控件之Slider
- IOS代码实现常用控件UIButton、UISlider、UISwitch、UISegmentedControl
- IOS代码实现常用控件UIButton、UISlider、UISwitch、UISegmentedControl
- IOS代码实现常用控件UIButton、UISlider、UISwitch、UISegmentedControl
- IOS代码实现常用控件UIButton、UISlider、UISwitch、UISegmentedControl
- QT初学 常用控件(Label pushbotton radio Slider...)代码创建方式
- iPhone开发【五】常用控件之Slider(不使用xib构建UI)
- iPhone开发【五】常用控件之Slider(不使用xib构建UI)
- 【iOS代码】Slider侧滑菜单栏
- VC++中轻松实现滑动(Slider)控件
- java 遍历Map对象的方法
- 【HttpClient4.5中文教程】【第三章 :状态管理】3.1---3.6 Cookie相关
- 什么是jQuery
- 客户端注册表卸载方法
- HTTP服务端接口模拟工具-HttpServerMockTool
- iOS代码实现常用控件之Slider 文字缩放
- spring+springmvc+mybatis详细运转流程
- FlycoDialog_Master--对话框
- 转:关于A类,B类,C类IP地址的网段和主机数的计算方法
- Write-through, write-around and write-back cache
- 跨域问题:No 'Access-Control-Allow-Origin' header is present on the requested resource.
- Linux中Tomcat的安装和配置方法
- Dom节点对象转化为字符串
- [IOS 开发] XML解析