IOS开发学习笔记019-动态创建控件
2015-04-25 17:35
746 查看
动态创建控件
一、按钮
二、文本输入框
三、lable标签
注意:只是简单的拖拽控件会毁了你,所以最好还是手动通过代码创建控件。
如果要通过代码生成按钮的话,可以在系统自带的函数viewDidLoad实现。应为每个控件都对应一个类,所以可以直接通过类创建一个对象,也就是一个控件,然后再逐步设置控件的属性。
下面这些操作基本上都是通用的,在不同的控件下操作基本相同
一、按钮
1、创建对象,这没啥好说的
UIButton *btn = [[UIButton alloc] init];2、在显示到视图控制器之前还要设置一些基本属性
1.1 设置按钮普通状态下得属性// 设置背景图片
UIImage *image = [UIImage imageNamed:@"btn_01.png"];
[btn setBackgroundImage:image forState:UIControlStateNormal];
// 设置显示的文字
[btn setTitle:@"come on" forState:UIControlStateNormal];
// 设置文字颜色
UIColor *color = [UIColor colorWithRed:0 green:0 blue:124 alpha:1];
[btn setTitleColor:color forState:UIControlStateNormal];
UIControlStateNormal、UIControlStateHighlighted表示按钮的状态,表示普通模式和高亮模式
1.2 设置高亮状态下得属性
image = [UIImage imageNamed:@"btn_02.png"];
[btn setBackgroundImage:image forState:UIControlStateHighlighted];
// 设置显示的文字
[btn setTitle:@"去死" forState:UIControlStateHighlighted];
// 设置文字颜色
color = [UIColor colorWithRed:200 green:0 blue:0 alpha:1];
[btn setTitleColor:color forState:UIControlStateHighlighted];
3、创建后要把对象添加到视图,这样才能显示出来。
[self.view addSubview:btn]; // 添加按钮到控制器中得viwe中具体过程就看代码吧。
#import "SLQViewController.h" const int DELTA = 5; @interface SLQViewController () @end @implementation SLQViewController // 控制器的view加载完毕会调用一次 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. NSLog(@"viewdidload-----"); // 1、创建按钮 UIButton *btn = [[UIButton alloc] init]; // 设置位置和尺寸 btn.frame = CGRectMake(0, 0, 100, 100); // 设置按钮普通状态下得属性 // 设置背景图片 UIImage *image = [UIImage imageNamed:@"btn_01.png"]; [btn setBackgroundImage:image forState:UIControlStateNormal]; // 设置显示的文字 [btn setTitle:@"come on" forState:UIControlStateNormal]; // 设置文字颜色 UIColor *color = [UIColor colorWithRed:0 green:0 blue:124 alpha:1]; [btn setTitleColor:color forState:UIControlStateNormal]; //; //[btn setTitleColor:<#(UIColor *)#> forState:<#(UIControlState)#>]; // 设置高亮状态下得属性 image = [UIImage imageNamed:@"btn_02.png"]; [btn setBackgroundImage:image forState:UIControlStateHighlighted]; // 设置显示的文字 [btn setTitle:@"去死" forState:UIControlStateHighlighted]; // 设置文字颜色 color = [UIColor colorWithRed:200 green:0 blue:0 alpha:1]; [btn setTitleColor:color forState:UIControlStateHighlighted]; // 监听按钮点击事件 [btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside]; // 2、添加按钮到控制器中得viwe中 [self.view addSubview:btn]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (void)btnClick:(UIButton *)btn { NSLog(@"点击按钮:%p",btn); }
二、文本输入框
创建一个文本输入框
// 文本框 UITextField *text = [[UITextField alloc] init]; // 创建对象 text.frame = CGRectMake(100, 0, 100, 100); // 设置位置和尺寸 text.backgroundColor = [UIColor redColor]; // 设置背景颜色 [self.view addSubview:text]; // 添加到视图控制器的view中
效果这样
![](https://oscdn.geek-share.com/Uploads/Images/Content/202002/13/994e9abd27c5b10004b57b7c2507ecc4.png)
三、lable标签
创建lable标签
// lable标签 UILabel *lable = [[UILabel alloc] init]; // 创建lable对象 lable.frame = CGRectMake(100, 100, 100,100); // 设置位置和尺寸 lable.text = @"this is a lable"; // 设置显示文本 lable.textColor = [UIColor colorWithRed:255 green:0 blue:0 alpha:1]; // 设置RGBA值 lable.font = [UIFont systemFontOfSize:10]; [self.view addSubview:lable]; // 添加到view中
关于这个控件包含的属性和方法可以直接去源文件里查找。比如说lable的下列可操作属性。
@property(nonatomic,copy) NSString *text; // default is nil @property(nonatomic,retain) UIFont *font; // default is nil (system font 17 plain) @property(nonatomic,retain) UIColor *textColor; // default is nil (text draws black) @property(nonatomic,retain) UIColor *shadowColor; // default is nil (no shadow) @property(nonatomic) CGSize shadowOffset; // default is CGSizeMake(0, -1) -- a top shadow @property(nonatomic) NSTextAlignment textAlignment; // default is NSTextAlignmentLeft @property(nonatomic) NSLineBreakMode lineBreakMode; // default is NSLineBreakByTruncatingTail.
总结:
通过代码创建控件的一般过程就是
1、创建一个OC类对象,其实就是对应一个控件
比如 UIButton *btn = [[UIButton alloc] init]; //
2、对控件的一般属性进行设置,不然无法显示到view中
比如设置位置尺寸、标题,字体,背景等属性,可以去对应的类中查看可以是用的属性和方法。
3、添加到View视图,这样最终才会显示到程序中。
相关文章推荐
- iOS开发学习笔记 -- (三)动态创建视图
- iOS开发学习笔记 -- (二)动态添加控件和事件处理
- IOS开发学习笔记(十三)——创建日历事件
- ((ios开发学习笔记五))手动创建Tab Bar Controller 程序
- ios学习笔记——简单控件(动态指示标识、进度条)
- iOS 学习笔记20 iOS开发UI篇—控制器的创建
- VS2013MFC单文档工程学习笔记四 - 动态创建多个控件
- iOS开发学习笔记-创建和初始化对象
- IOS开发笔记26-代码创建控件
- iOS开发笔记-根据frame大小动态调整fontSize的自适应文本及圆形进度条控件的实现
- IOS开发学习笔记018- 一般控件的使用
- IOS开发-UI学习-UIFont,字体设置及批量创建控件
- C#开发学习笔记:动态绑定控件事件
- android 开发零起步学习笔记(十):UI控件动态加载机制浅析
- android 开发零起步学习笔记(十五):android: 静态XML和动态加载XML混合使用,以及重写Layout控件
- C#开发学习笔记:Dev控件库的TreeList动态添加节点
- Android开发学习笔记:为动态添加的EditText控件绑定值改变监听事件
- Android开发学习笔记:为动态添加的Spinner控件绑定数据源以及监听事件
- MFC学习笔记12 创建动态DLL库
- iOS开发 - 写一个刷新的控件(未封装,适合新手学习,查看原理)