UI开发----基础视图和程序启动流程(delegate)

//  Create by 郭仔  2015年04月13日22:10:23

今天介绍的基础视图包括:UITextField、UIButton

一.定义UITextField:

创建UITextField与创建UILabel的步骤很相似。?

1、开辟空间并初始化(如果本类有初始化?方法,使?用?自?己的;否则 使?用?父类的)。?

2、设置?文本显?示、输?入相关的属性?

3、添加到?父视图上,?用以显?示?

4、释放

UITextField * textField = [[UITextField alloc] initWithFrame:CGRectMake(20, 50, 100, 50)];
    textField.backgroundColor = [UIColor cyanColor];
    [self.window addSubview:textField];
    [textField release];

常用属性和方法:

文本显示:

输入控制:

外观控制:

代码实现:

textField.text = @"Hello 郭仔";
    textField.textColor = [UIColor redColor];
    textField.textAlignment = NSTextAlignmentCenter;
    // textField.font = [UIFont systemFontOfSize:12];
    textField.font = [UIFont fontWithName:@"HelveticaBold" size:12];
    textField.placeholder = @"请输入用户名";
    // textField.enabled = NO;
    textField.clearsOnBeginEditing = YES;
    textField.secureTextEntry = YES;
    // textField.keyboardType = UIKeyboardTypeNumberPad;
    textField.returnKeyType = UIReturnKeyNext;
    // textField.inputView = self.window;
    UIView * view = [[UIView alloc] initWithFrame:CGRectMake(20, 50, 50, 30)];
    view.backgroundColor = [UIColor greenColor];

    //银行安全输入密码是变换键盘,view是自己添加的键盘
    // textField.inputView = view;
    textField.inputAccessoryView = view;
    [view release];
textField.borderStyle = UITextBorderStyleRoundedRect;
    textField.clearButtonMode = UITextFieldViewModeWhileEditing;

    UIView * leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10, 10)];
    leftView.backgroundColor = [UIColor blueColor];

    textField.leftView = leftView;
    textField.leftViewMode = UITextFieldViewModeAlways;

    UIView * rightView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10, 10)];
    rightView.backgroundColor = [UIColor redColor];

    textField.rightView = rightView;
    textField.rightViewMode = UITextFieldViewModeAlways;

    // =================================================
    // 设置自身为代理
    textField.delegate = self;
    // 设置textfield为第一响应者,直接弹出键盘,光标直接定位到了textField中
    [textField becomeFirstResponder];
    // =================================================

    [leftView release];
    [rightView release];

==================================================================

获取系统中字体名称:

    // 打印出系统字体
    NSArray *array = [UIFont familyNames];
    for (NSString *s in array) {
        NSLog(@"%@",s);
    }

==================================================================

UIButton:

UIButton的使用:

创建UIButton与创建UILabel、UITextField、UIView的步骤很相似。? 1、创建button对象(如果本类有初始化?方法,使?用?自?己的;否则使?用 ?父类的)。?

2、设置按钮显?示相关的属性?

3、为按钮添加点击事件? 4、添加按钮到?父视图上,?用以显?示? 5、按钮?无需释放(因为使?用的是类?方法创建的button)

创建UIButton:

UIButton * btn = [UIButton buttonWithType:UIButtonTypeCustom];
    btn.frame = CGRectMake(100, 150, 100, 60);
    btn.backgroundColor = [UIColor greenColor];
    [btn setTitle:@"登陆" forState:UIControlStateNormal];
    // [btn setTitle:@"登陆" forState:UIControlStateHighlighted];
    // 添加button事件
    [btn addTarget:self action:@selector(login:) forControlEvents:UIControlEventTouchUpInside];
    [self.window addSubview:btn];

UIButton从?父类UIControl那继承了控制相关的?方法,?比如添加事

件、移除事件等。

注:UIButton : UIControl : UIView

UIButton添加事件:

外观控制:

代码实现:

UIButton * btn = [UIButton buttonWithType:UIButtonTypeCustom];
    btn.frame = CGRectMake(100, 150, 100, 60);
    btn.backgroundColor = [UIColor greenColor];
    [btn setTitle:@"登陆" forState:UIControlStateNormal];
    // [btn setTitle:@"登陆" forState:UIControlStateHighlighted];
    // 添加button事件
    [btn addTarget:self action:@selector(login:) forControlEvents:UIControlEventTouchUpInside];
    // 移除button事件
    // [btn removeTarget:self action:@selector(login:) forControlEvents:UIControlEventTouchUpInside];
    [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
    [btn setTitleColor:[UIColor blackColor] forState:UIControlStateHighlighted];
    [btn setTitle:@"取消" forState:UIControlStateHighlighted];

    UIImage * img = [UIImage imageNamed:@"3.png"];
    //[btn setImage:img forState:UIControlStateNormal];
    UIImage * img2 =[UIImage imageNamed:@"4.png"];
    //[btn setImage:img2 forState:UIControlStateHighlighted];

    // 把图片设置成背景
    [btn setBackgroundImage:img forState:UIControlStateNormal];
    [btn setBackgroundImage:img2 forState:UIControlStateHighlighted];

===========================================================================

delegate:

点return回收键盘:

点击键盘return按钮实现键盘回收的步骤: 1、将AppDelete作为UITextField的delegate 2、AppDelete.h?文件接受UITextFieldDelegate协议 3、AppDelete.m?文件实现textFieldShouldReturn:?方法。

代码实现:

首先要遵守UITextFieldDelegate协议。

<span style="color:#333333;">    // 设置自身为代理
    textField.delegate = self;
    // 设置textfield为第一响应者,直接弹出键盘,光标直接定位到了textField中
    [textField becomeFirstResponder];</span>
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    // 取消第一响应者
    [textField resignFirstResponder];
    NSLog(@"你点击了return按钮");
    return YES;
}

========================================================================

IOS程序启动流程:

UIApplicationMain:

UIApplicationMain在程序?入?口函数main函数中调?用,主要实现了3个

功能: 创建应?用程序(UIApplication)实例 创建应?用程序代理实例

建?立事件循环(runloop:死循环,不断检测程序运?行状态,是否被触 摸、晃动等)


int UIApplicationMain (!

int argc,!

char *argv[],!

NSString *principalClassName,!

NSString *delegateClassName!

);! 1、principalClassName:应?用程序对象的类名(UIApplication或其?子类)! 2、delegateClassName:应?用程序delegate的类名。(任何接受了 UIApplicationDelegate的类)! UIApplicationMain根据上述两个类名创建应?用程序实例、应?用程序代理实例。

然后建?立事件循环(runloop),检测程序的各种事件(程序开始启动,接收到触 摸等等);

==============

应用程序代理:

UIApplicationDelegate是?一个OC的协议。?里?面声明了?一堆?方法,这些?方

法都与应?用程序运?行状态有关,它们由应?用程序代理实现。UIApplication 对象负责调?用。

UIApplicationDelegate中的定义的部分方法:

================================================================================

UIWindow:

UIWindow作为应?用程序的窗?口,在应?用程序启动的时候就要加载,

各种UI界?面都是借助window来呈现的。 UIWindow在创建的时候,应该和屏幕?一样?大。通过[UIScreen

mainScreen].bounds可以获得屏幕?大?小。

[self.window makeKeyAndVisible];//让window变的可视,即显?示 window。

================================================================================

时间: 2024-10-25 07:15:39

UI开发----基础视图和程序启动流程(delegate)的相关文章

UI_02 基础视图、程序启动流程

?.UITextField UITextField(输?框):是控制?本输?和显?的控件 UITextField核?功能主要包含3个??: ?本显? 输?控制 外观配置 1.?本显? //    textField.text = @"你好"; //    textField.textAlignment = NSTextAlignmentCenter; textField.textColor = [UIColor blueColor]; textField.placeholder = @

我的全栈之路-C语言基础之C程序运行流程

我的全栈之路-C语言基础之C程序运行流程 我的全栈之路 4.1 C程序的运行流程 C语言编写的程序一般都要经过编写源文件->预处理->编译->汇编->链接后运行这几个流程. 预处理 预处理主要是宏替换.包含头文件.条件编译以及删除注释等操作,预编译阶段生成文件的后缀名通常是.i. 编译 编译主要是将预处理好的文件生成汇编文件,编译后文件的后缀名通常是.s. 汇编 汇编主要是将汇编文件生成二进制文件,汇编后的文件的后缀名通常是.o. 链接 链接主要是将各个二进制文件.库函数.启动代码

load View 流程 程序启动流程

基本流程: loadView / nib文件  来加载view到内存 -> viewDidLoad 函数进一步初始化这些view -> 内存不足时, 调用viewDidUnload 函数释放掉views -> 当需要使用view时又回到第一步, 如此循环 viewWillAppear 方法: 试图即将过渡到屏幕上时调用, 程序启动顺序: 1. main.m 是程序入口. 2. UIApplicationMain() 创建应用程序对象, 并且为此对象指定委托, 检测程序的执行, 同时开启事

app程序启动流程

1.执行main函数 2.执行UIApplication main函数 3.创建UIApplication对象(注意UIApplication是一个单例对象,[UIApplication sharedApplication]) 4.创建UIApplication代理 5.开启主运行循环(Runloop,)注意主运行循环是由系统开启,子运行循环需要手动开启 6.加载infor.plist文件配置信息,判断是否有mainstorybord,如果有就去加载mainstorybord 7.应用程序启动完

iOS中程序启动流程

1.任何一个程序,无论是基于Mac OS 还是 iOS,程序都是从main.m文件的main函数开始执行的. #import <UIKit/UIKit.h> #import "AppDelegate.h" int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]))

iOS程序启动流程(留有问题)

程序的简单运行流程: 读取Main.storyboard文件 创建箭头所指的ViewController对象 根据storyboard文件中描述创建ViewController的UIView对象 将UIView对象显示到用户眼前 从右侧库里直接拖拽UIButton/UITextField/UILabel等这些控件到storyboard里,就是在对应ViewController对象里创建了属性?

iOS 应用程序启动流程

#import <UIKit/UIKit.h> #import "AppDelegate.h" main 函数为程序入口 int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 第三个参数为UIApplication 第四个参数为AppDelegate  

UI开发----自定义视图和视图控制器(Controller)

//  Created By 郭仔  2015年04月14日21:34:01 一.自定义视图: 根据需求的不同,?自定义视图继承的类也有所不同.?一般?自定义的 视图会继承于UIView.以下是?自定义视图的要点: 1.创建?一个UIView?子类 2.在类的初始化?方法中添加?子视图 3.类的.h?文件提供?一些接?口(?方法),便于外界操作?子视图 ================== 这里以label-textfield自定义视图为例: 把Label和Textfield封装到LTView中

Objective-UI UITextField,UIButton,delegate程序启动流程

实际App中的登录界面并非由一个一个色块组成,而是由标签(UILabel),输入框(UITextField)和按钮(UIButton)组成.今天我们来看一下UITextField,通过今天的学习,希望我以及大家都能掌握UITextField的使用方法.我们进入主题. UITextField(输入框):是控制文本输入和显示的控件,在App中UITextField出现频率也很高,iOS系统借助虚拟键盘实现输入,当点击输入框,系统会自动调出键盘,方便我们进一步操作.在你不需要输入,可以使用收回键盘的方