UILabel、UIButton、UITextField控件的简单使用

  UILabel、UIButton、UITextField是UI中最简单也是必须掌握的基础控件,下面我来介绍下这3个控件分别用来干嘛的。

  UILabel:是一个文本框,主要用来显示文本信息的,比如微博上看到的文字,就是UILabel。

  UIButton:是一个按钮,用来点击触发一些事件的。比如QQ上发送消息,就是UIButton。

  UITextField:是输入框,用来输入文本信息的。比如QQ上面打字。

  话不多说,直接上代码。我们先来完成UILabel,为了使代码看起来更加美观,我们就把UILabel封装起来,我们先在延展就声明一个方法,

- (UILabel *)createLabelWithText:(NSString *)text frame:(CGRect)frame textColor:(UIColor *)textColor textAlignment:(NSTextAlignment)textAlignment numberOfLines:(NSInteger)numberOfLines font:(UIFont *)font;

  然后我们把这个方法实现出来。

- (UILabel *)createLabelWithText:(NSString *)text frame:(CGRect)frame textColor:(UIColor *)textColor textAlignment:(NSTextAlignment)textAlignment numberOfLines:(NSInteger)numberOfLines font:(UIFont *)font {
    UILabel *label = [[UILabel alloc] initWithFrame:frame];
    label.text = text;
    label.textColor = textColor;
    label.textAlignment = textAlignment;
    label.numberOfLines = numberOfLines;
    label.font = font;
    return [label autorelease];
}

  这样的话,我们只需要一行代码就可以创建完一个UILabel,然后再写一行代码把UILabel添加到UIView上面。

UILabel *label1 = [self createLabelWithText:@"Hello iOS" frame:CGRectMake(0, 300,100, 40) textColor:[UIColor magentaColor] textAlignment:NSTextAlignmentCenter numberOfLines:0 font:[UIFont boldSystemFontOfSize:21]];
    [containerView addSubview:label1];

  初学者总会忘记设置frame,全部写完了,但是运行起来什么都看不到,那很有可能就是忘记给frame了。

  

  UITextField我们也把它封装起来。

- (UITextField *)createTextFiledWithFrame:(CGRect)frame borderStyle:(UITextBorderStyle)borderStyle placeholder:(NSString *)placeholder secureTextEntry:(BOOL)secureTextEntry keyboardType:(UIKeyboardType)keyboardType {
    UITextField *textField = [[UITextField alloc] initWithFrame:frame];
    textField.borderStyle = borderStyle;
    textField.placeholder = placeholder;
    textField.secureTextEntry = secureTextEntry;
    textField.keyboardType = keyboardType;
    return [textField autorelease];
}

  按照跟UILabel一样的方法,依样画葫芦,就能完成UITextField的创建了。

  封装起来,看代码是不是简洁性很好的,强迫症的人看起来是不是很舒服。下面,我们就来看看不封装的样子。

// 创建一个UIButton对象,UIButton侧重于交互,响应事件
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

    // 设置frame
    button.frame = CGRectMake(37, 300, 200, 200);

    // 设置button显示的文本(标题)
//    [button setTitle:@"八~~~达" forState:UIControlStateNormal];

    // 如果button样式是system,那么不给定标题颜色,也能看见标题,默认蓝色
    // 如果button样式custom,那么除了给定标题内容之外,还需要给定标题文本颜色
    [button setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
    [button setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];

    // 设置Button的背景图片

    // 设置前景图片时,使用custom样式,如果图片大小大于button的大小,那么图片会被压缩到与button等大,如果图片大小小于button的大小,阿么图片保留原有大小
    // 设置背景图片时,不论使用custom还是system,图片大于或者小于button大小,都会显示的与button等大
    [button setImage:[UIImage imageNamed:@"xigua"] forState:UIControlStateNormal];
    [button setImage:[UIImage imageNamed:@"BtnOff"] forState:UIControlStateHighlighted];

    // 点击时如果设置了图片,不出现闪烁的效果
//    button.adjustsImageWhenHighlighted = NO;

    // 关键方法,为button添加了一个事件
    [button addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];

    [containerView addSubview:button];

  下面是点击事件的代码,不触发什么事件,就输出一下,知道点击事件触发了就好了。

- (void)click:(UIButton *)sender {
    NSLog(@"boom boooooooom ! ! ! !");
}

  这代码是不是看起来就很长了,没有封装起来的代码好看。

  好了,基础的创建已经讲完了,更加深层次就是自己去研究了,建议用纯代码,万行代码的程序员只是一个入门。

  

时间: 2024-11-05 14:53:01

UILabel、UIButton、UITextField控件的简单使用的相关文章

UIButton 按钮控件

文章出处:http://blog.csdn.net/iukey UIButton是一个标准的UIControl控件,所以如果你对UIControl不甚了解还是先看一下我的另一篇博文:<UIControl IOS控件编程> 一.创建 两种方法: 1. 常规的 initWithFrame UIButton *btn1 = [[UIButton alloc]initWithFrame:CGRectMake(10, 10, 80, 44)]; 对代码创建View(UIControl继承自UIView,

Android动态加载XML文件及控件来简单实现QQ好友印象的功能

在android开发中,我们常常会遇到界面布局控件不确定的情况.由于某些功能的原因或者为了体现某些app的特色等这些原因会导致我们在实现界面布局时需要动态去加载一些控件,那么下面就来介绍一下如何用动态加载控件来简单实现QQ中好友印象的功能,其中也会提到如何来动态加载一个XML的配置文件. 那么要实现好友印象的功能,我们需要通过以下这几个步骤: 1.界面一开始需要加载一个EditText和Button控件,用于填写好友印象和添加好友印象: 2.需要新建一个arrays.xml,在xml文件中添加上

iOS UITextField控件总结

iOS UITextField控件总结 先声明下面总结不是自己写的. //初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)]; //设置边框样式,只有设置了才会显示边框样式 text.borderStyle = UITextBorderStyleRoundedRect; typedef enum { UITextBorderStyleNone

UITextField控件属性

UITextField控件属性: enablesReturnKeyAutomatically 默认为No,如果设置为Yes,文本框中没有输入任何字符的话,右下角的返回按钮是disabled的. 1.borderStyle 设置边框样式,只有设置了才会显示边框样式 text.borderStyle = UITextBorderStyleRoundedRect; typedef enum { UITextBorderStyleNone, UITextBorderStyleLine, UITextBo

Android ListView列表控件的简单使用

ListView 列表是我们经常会使用的控件, 如果想要自定义里面的显示的话是挺麻烦的, 需要新建XML.Class SimpleAdapter这两个文件, 较为麻烦. 如果我们只是想显示两.三行文字在上面, 却又不想那么麻烦呢? 那我们只要新建一个XML就够了.  这里以显示一个ListView项里三个TextView为例.  首先我们要创建一个XML文件, 这个XML文件是用来作为单个ListView项布局用的.  list_row.xml[java]<?xml version="1.

网格控件的简单实用

一,新建一个BCG工程CBCGPGridCtrlSingle,基于对话框. 二,CCBCGPGridCtrlSingleDlg类定义变量. CBCGPGridCtrl m_grid; 三,CCBCGPGridCtrlSingleDlg::OnInitDialog对网格控件进行初始化. CRect r(0,0,200,200); m_grid.Create(WS_CHILD, r, this, 1); m_grid.ShowWindow(SW_SHOW); m_grid.InsertColumn 

ASP.NET Repeater控件实现简单分页

早上,有看MSDN,看到了 PagedDataSource 类 http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.pageddatasource(v=vs.110).aspx 想起以前Insus.NET只对Gridview和DataList控件进行自定义分页.<GridView和DataList分页组件与用户控件>http://www.cnblogs.com/insus/archive/2009/03/19/14

自定义Gallery控件实现简单3D图片浏览器

本篇文章主要介绍如何使用自定义的Gallery控件,实现3D效果的图片浏览器的效果. 话不多说,先看效果. 上面是一个自定义的Gallery控件,实现倒影和仿3D的效果,下面是一个图片查看器,点击上面的小图片,可以在下面查看大图片. 下面重点说一下,实现图片查看器的思路. 1.手机中图片路径的获取 首先,先不管图片如何展示,如果我们想实现图片查看器的功能,我们首先需要做的是获取到所有的图片的路径信息,只有这样,我们才能实现对图片的查看. 我们可以使用下面的代码实现 private List<St

iOS学习笔记—— UItableView 控件的简单使用

UITableView 可以说是iOS开发中最常用的控件,除了游戏之外,几乎所有的应用中独会出现他的身影. 使用UITableView控件需要遵守两种协议 UITableViewDelegate和 UITableViewDataSource. 常用方法如下: 1.返回(每个分区)表单元个数(行数) - (NSInteger) tableView: (UItableView *) tableVIew numberOfRowsInSection: (NSInteger)section 2.返回表单元