IOS--UI--LessonCustumView 自定义视图
来源:互联网 发布:淘宝下单返利 编辑:程序博客网 时间:2024/05/23 20:25
自定义视图
1.通常我们自定义视图 是在 AppDelegate 里面 会有很长的一大段影响Appdelegate 的运行,那我们就可以将自定义的视图封装成一个类 创建 LTView (label 和 TextField)的视图
2.创建 LTView 的. h 和. m
.h里面
#import <UIKit/UIKit.h>@interface LTView : UIView// 定义两个属性: label 和 textField@property (nonatomic,retain)UILabel *label;@property (nonatomic,retain)UITextField* textField;@end
.m 里面
#import "LTView.h"@implementation LTView- (void)dealloc{ [_textField release]; [_label release]; [super dealloc];}// 重写 UIView 的 初始化方法-(id) initWithFrame:(CGRect)frame{ self =[super initWithFrame:frame]; if (self) { // 一般不会直接写在这里面 会先一个方法 然后在这里调用 [self p_setUp];//p_setUp 算是一个传统的名字 可以随便起 }return self;}// 写完这个方法 要立刻在重写 UIView 的初始化方法 里面调用-(void)p_setUp{ _label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, self.frame.size.width/3, self.frame.size.height)];// 这个地方 视图的长宽 都设为活值 方便我们在 Appdelegate . m里面赋值. // self.frame.size.width/3 点语法 _label.backgroundColor= [UIColor yellowColor]; [self addSubview: _label]; [_label release];// alloc 就要 release; _textField = [[UITextField alloc]initWithFrame:CGRectMake(_label.frame.size.width, 0, self.frame.size.width*2/3, self.frame.size.height)]; _textField .backgroundColor = [UIColor redColor]; [self addSubview:_textField]; [_textField release];}@end
写完之后 我们就可在Appdelegate.m 里面 直接引用
3. // 使用自定义的视图类
NSArray *labelText = @[@"用户名",@"用户密码",@"确认密码",@"电话",@"邮箱"]; NSArray *placeholderText = @[@"请输入用户名",@"请输入密码",@"请确认密码",@"请输入电话",@"请输入邮箱"]; NSInteger y = 30; for (int i = 0; i < 5; i++) { LTView *view = [[LTView alloc]initWithFrame:CGRectMake(15, y, 300, 40)]; view .backgroundColor = [UIColor whiteColor]; view.label.text = labelText[i];// 用语法糖 快速为 view 的属性 label.text 赋值 // 为 textField 赋值 view.textField.placeholder = placeholderText[i]; // 为 view.textField 设置代理 view.textField.delegate = self; [self.window addSubview:view]; [view release]; y +=60; // 在这里 为 textField 加一个代理 然后收回键盘 } self.window.backgroundColor = [UIColor whiteColor]; [self.window makeKeyAndVisible]; return YES;}方法外面写方法// 代理实现-(BOOL) textFieldShouldReturn:(UITextField *)textField{ //回收键盘 (resignFirstResponder:取消第一响应者) [textField resignFirstResponder]; return YES;}
总结 :摆脱传统的自定义视图 让 delegate 里面更简洁 出错的适合也方便查找
1.封装我们需要定义的视图类
2.在 delegate.m 里引用头文件
3.就可以开心使用啦;
0 0
- IOS--UI--LessonCustumView 自定义视图
- iOS开发 UI 自定义视图
- UI 自定义视图 Label_TextField
- UI 自定义视图
- UI基础知识 -- 自定义视图
- iOS UI 视图
- UI笔记_自定义视图
- UI第三节 自定义视图,视图控制器
- UI 第三天 自定义视图 视图控制器
- UI基础-自定义视图、视图控制器
- IOS自定义UI组件的外观——使用UIAppearance协议自定义视图
- IOS自定义UI组件的外观——使用UIAppearance协议自定义视图()
- IOS自定义UI组件的外观——使用UIAppearance协议自定义视图
- IOS自定义UI组件的外观——使用UIAppearance协议自定义视图
- IOS自定义UI组件的外观——使用UIAppearance协议自定义视图
- iOS 之自定义UI组件的外观——使用UIAppearance协议自定义视图(初识)
- IOS自定义UI组件的外观——使用UIAppearance协议自定义视图
- IOS自定义表格视图
- JAVA学习参考链接收藏
- JAVA学习(四):Java流程控制语句(顺序结构、if条件语句、switch条件语句、循环语句与跳转语句)
- 诺亚方舟实验室李航:深度学习还局限在复杂的模式识别上
- 有道词典
- java深入解析-第1章 基本概念
- IOS--UI--LessonCustumView 自定义视图
- Objective-C 快速入门--基础(五)
- 如何将Latex转换为Word之Word插入.bib中的文献
- 一不抱怨,二不解释
- 程序员面试笔试宝典学习记录(二)(程序设计相关知识)
- Android中各种Adapter详解
- Ribbon界面状态栏信息显示及添加进度条
- 黑马程序员——迭代器
- 生成Android SDK的深入探索