iOS 9应用开发教程之显示编辑文本标签文本框
iOS 9应用开发教程之显示编辑文本标签文本框
ios9显示、编辑文本
在iOS,经常会看到一些文本的显示。文字就是这些不会说话的设备的嘴巴。通过这些文字,可以很清楚的指定这些设备要表达的信息。本节将主要讲解在iOS中,用来显示和编辑文本的三个视图:标签、文本框和文本视图。
ios9只读文本——标签
标签视图是一个只读的文本视图,它用于在应用程序中为用户显示少量的信息,如图2.16所示。在此图中文字的显示使用的就是标签视图。标签视图一般使用UILabel类实现。
图2.16 美容相机
【示例2-6】以下就是通过标签视图显示一首诗的效果。代码如下:
- import UIKit
- class ViewController: UIViewController {
- override func viewDidLoad() {
- super.viewDidLoad()
- // Do any additional setup after loading the view, typically from a nib.
- //添加标签对象mytitle
- let mytitle=UILabel(frame: CGRectMake(88, 100, 198, 58))
- mytitle.font=UIFont.boldSystemFontOfSize(44) //设置字体:粗体
- mytitle.textAlignment=NSTextAlignment.Center //设置对齐方式
- mytitle.text="送友人"
- self.view.addSubview(mytitle)
- //添加标签对象verse1
- let verse1=UILabel(frame: CGRectMake(44, 197, 303, 63))
- verse1.font=UIFont.systemFontOfSize(24) //设置字体
- verse1.textAlignment=NSTextAlignment.Center
- verse1.text="青山横北郭,白水绕东城。"
- self.view.addSubview(verse1)
- //添加标签对象verse2
- let verse2=UILabel(frame: CGRectMake(44, 268, 303, 63))
- verse2.font=UIFont.systemFontOfSize(24)
- verse2.textAlignment=NSTextAlignment.Center
- verse2.text="此地一为别,孤蓬万里征。"
- self.view.addSubview(verse2)
- //添加标签对象verse3
- let verse3=UILabel(frame: CGRectMake(44, 339, 303, 63))
- verse3.font=UIFont.systemFontOfSize(24)
- verse3.textAlignment=NSTextAlignment.Center
- verse3.text="浮云游子意,落日故人情。"
- self.view.addSubview(verse3)
- //添加标签对象verse4
- let verse4=UILabel(frame: CGRectMake(44, 410, 303, 63))
- verse4.font=UIFont.systemFontOfSize(24)
- verse4.textAlignment=NSTextAlignment.Center
- verse4.text="挥手自兹去,萧萧班马鸣。"
- self.view.addSubview(verse4)
- }
- ……
- }
此时运行程序,会看到如图2.17所示的效果。
图2.17 运行效果
注意:标签视图默认是显示一行的,但是,也可以将标签的内容显示为多行。
【示例2-7】以下将为在标签中显示多行内容。代码如下:
- import UIKit
- class ViewController: UIViewController {
- override func viewDidLoad() {
- super.viewDidLoad()
- // Do any additional setup after loading the view, typically from a nib.
- let verse=UILabel(frame: CGRectMake(20, 191, 333, 196))
verse.text=" 像阳光一样的人,像阳光一样的事,像阳光一样的爱,像阳光一样的慈悲,世界上遍地都是。一声温暖的问候,一个甜甜的微笑,一句简单的祝福,一回小小的帮助,一次善意的举动,无不是我们生命的阳光。我们何不把它们收藏起来,让它照耀我们的人生路,温暖我们需要温暖的内心?心底的阳光多了,自己就是个太阳,还有什么风雨大到能够浇灭太阳?"
- self.view.addSubview(verse)
- }
- ……
- }
此时运行程序,会看到如图2.18所示的效果。在图中可以看到标签中只显示了一行文本内容,并没有将所有的内容显示出来。为了解决这一问题,iOS提供了一个显示多行的属性numberOfLines,这样一来,标签中要显示的内容就可以以多行的形式全部显示出来。在此示例中,我们的标签内容需要9行才可以显示出来,所以在代码中添加以下内容:
- verse.numberOfLines=9
此时运行程序,会看到如图2.19所示的效果。
图2.18 运行效果 图2.19 运行效果
单行读写文本——文本框
文本框是一种常见的单行读写文本视图,简单的说就是输入控件,例如一种登录界面要求用户输入用户名和密码等,如图2.1所示。文本框一般使用UITextField实现。
【示例2-8】以下通过使用文本框实现QQ中添加账号的功能。具体操作步骤如下:
(1)创建一个Single View Application模板类型的项目,命名为UITextField。
(2)打开Main.storyboard文件,对主视图进行设计,效果如图2.20所示。
需要添加的视图以及对它们的设置如表2-5所示。
表2-5 对视图对象的设置
图2.20 主视图的效果
(3)打开ViewController.swift文件,编写代码,此代码实现的功能是账号的添加。代码如下:
- import UIKit
- class ViewController: UIViewController {
- override func viewDidLoad() {
- super.viewDidLoad()
- // Do any additional setup after loading the view, typically from a nib.
- //添加输入账号的文本框
- let accountnumber=UITextField(frame: CGRectMake(0, 116, 375, 50))
- accountnumber.borderStyle=UITextBorderStyle.RoundedRect //设置文本框的边框风格
- accountnumber.placeholder="QQ号/手机号/邮箱" //设置文本框的占位符
- self.view.addSubview(accountnumber)
- //添加输入密码的文本框
- let password=UITextField(frame: CGRectMake(0, 165.5, 375, 50))
- password.borderStyle=UITextBorderStyle.RoundedRect
- password.placeholder="密码"
- self.view.addSubview(password)
- }
- ……
- }
此时运行程序,会看到如图2.21所示的效果。当开发者轻拍文本框后,会自动弹出键盘,如图2.22所示。
图2.21 运行效果 图2.22 运行效果
多行读写文本——文本视图
文本视图也是输入控件,与文本框不同的是,文本视图可以让用户输入多行,如图2.23所示。在此图中字符串“说点什么吧”这一区域就是使用文本视图实现的,用户可以在此区域中写大量的文本内容。一般文本框视图使用UITextView实现。
图2.23 写日志
【示例2-9】以下将使用文本视图实现QQ中写说说并发表的功能。具体的操作步骤如下:
(1)创建一个Single View Application模板类型的项目,命名为UITextView。
(2)打开Main.storyboard文件,对主视图进行设计,效果如图2.24所示。
需要添加的视图以及对它们的设置如表2-6所示。
表2-6 对视图对象的设置
图2.24 主视图的效果
(3)打开ViewController.swift文件,编写代码,此代码实现的功能是写说说并发表的功能。代码如下:
- import UIKit
- class ViewController: UIViewController,UITextViewDelegate {
- let wtv=UITextView(frame: CGRectMake(0, 97, 375, 232))
- let rtv=UITextView(frame: CGRectMake(0, 372, 375, 232))
- let label=UILabel(frame: CGRectMake(3, 105, 123, 21))
- override func viewDidLoad() {
- super.viewDidLoad()
- // Do any additional setup after loading the view, typically from a nib.
- self.view.addSubview(wtv) //添加文本视图
- label.text="说点什么吧..." //设置标签的文本内容
- label.enabled=false //禁用标签
- label.backgroundColor=UIColor.clearColor()
- wtv.delegate=self //设置文本视图的委托
- self.view.addSubview(label)
- self.view.addSubview(rtv)
- rtv.backgroundColor=UIColor.clearColor()
- rtv.editable=false //禁用文本视图
- rtv.hidden=true //隐藏文本视图
- }
- //监听文字改变的消息
- func textViewDidChange(textView: UITextView) {
- //判断文本视图的内容是否为空
- if(wtv.text==""){
- label.text="说点什么吧..."
- }else{
- label.hidden=true
- }
- }
- //隐藏键盘
- @IBAction func cancel(sender: AnyObject) {
- wtv.resignFirstResponder()
- }
- //发表说说,隐藏键盘
- @IBAction func issue(sender: AnyObject) {
- rtv.hidden=false
- rtv.text=wtv.text //设置文本视图的文本内容
- wtv.resignFirstResponder()
- }
- ……
- }
运行程序后,会看到如图2.25所示的效果。当开发者轻拍文本视图后,会自动弹出键盘,如图2.26所示。
图2.25 运行效果 图2.26 运行效果
当开发者在文本视图中输入内容后,字符串“说点什么吧…”就会自动消失,如图2.27所示。当轻拍发表按钮后,在文本视图中写入的内容就会显示在另一个文本视图中,并且键盘消失,如图2.28所示。
图2.27 运行效果 图2.28 运行效果
本文选自:iOS 9应用开发基础教程大学霸内部资料,转载请注明出处,尊重技术尊重IT人!
iOS 9应用开发教程之显示编辑文本标签文本框的更多相关文章
- iOS 9应用开发教程之多行读写文本ios9文本视图
iOS 9应用开发教程之多行读写文本ios9文本视图 多行读写文本——ios9文本视图 文本视图也是输入控件,与文本框不同的是,文本视图可以让用户输入多行,如图2.23所示.在此图中字符串“说点什么吧 ...
- iOS 9应用开发教程之编辑界面与编写代码
iOS 9应用开发教程之编辑界面与编写代码 编辑界面 在1.2.2小节中提到过编辑界面(Interface builder),编辑界面是用来设计用户界面的,单击打开Main.storyboard文件就 ...
- iOS 9应用开发教程之使用代码添加按钮美化按钮
iOS 9应用开发教程之使用代码添加按钮美化按钮 丰富的用户界面 在iOS9中提供了很多的控件以及视图来丰富用户界面,对于这些视图以及控件我们在上一章中做了简单的介绍.本章我们将详细讲解这些视图. i ...
- iOS 9应用开发教程之创建iOS 9项目与模拟器介绍
iOS 9应用开发教程之创建iOS 9项目与模拟器介绍 编写第一个iOS 9应用 本节将以一个iOS 9应用程序为例,为开发者讲解如何使用Xcode 7.0去创建项目,以及iOS模拟器的一些功能.编辑 ...
- Sagit.Framework For IOS 开发框架入门开发教程2:一行代码实现引导页
前言: 开篇比较简单:Sagit.Framework For IOS 开发框架入门开发教程1:框架下载与环境配置 第二篇教程之前写了一半,感觉不太好写,而且内容单纯介绍API,要说的很多,又枯燥乏味. ...
- iOS 9应用开发教程之使用开关滑块控件以及滚动部署视图
iOS 9应用开发教程之使用开关滑块控件以及滚动部署视图 使用ios9中的开关.滑块控件 开关和滑块也是用于和用户进行交互的控件.本节将主要讲解这两种控件. ios9开关 开关控件常用来控制某个功能的 ...
- iOS 9应用开发教程之定制应用程序图标以及真机测试
iOS 9应用开发教程之定制应用程序图标以及真机测试 定制ios9应用程序图标 在图1.12中可以看到应用程序的图标是网状白色图像,它是iOS模拟器上的应用程序默认的图标.这个图标是可以进行改变的.以 ...
- Js控制显示、隐藏文本框中的密码
Js控制显示.隐藏文本框中的密码,也可称为是一款小型的JavaScript星号密码破解器,点击会显示出密码类型的文本框中的真实信息,再次点击则还原,程序 主要是获取HTML元素对象,然后强制更改元素属 ...
- Sagit.Framework For IOS 开发框架入门开发教程1:框架下载与环境配置
背景: 前天开源了框架:开源:Sagit.Framework For IOS 开发框架 所以注定要追补一套开发教程了,所以尽量抽空了!!! 步骤 1:下载框架源码 GitHub:https://git ...
随机推荐
- 【译】第九篇 Integration Services:控制流任务错误
本篇文章是Integration Services系列的第九篇,详细内容请参考原文. 简介在前面三篇文章,我们创建了一个新的SSIS包,学习了脚本任务和优先约束,并检查包的MaxConcurrentE ...
- JS模块规范
ES6标准发布后,module成为标准,标准的使用是以export指令导出接口,以import引入模块,但是在我们一贯的node模块中,我们采用的是CommonJS规范,使用require引入模块,使 ...
- 初涉sqlmap
1.基本注入(这个工具kali或者bt下面有集成的,这里附加一个window免py版,提取码:3ldv) sqlmap -u http://url/xx.php?id=1 判断注入 sqlmap - ...
- aarch64_g4
golang-github-inconshreveable-muxado-devel-0-0.7.gitf693c7e.fc26.noarch.rpm 2017-02-11 16:47 30K fed ...
- haproxy代理https配置方法【转】
记得在之前的一篇文章中介绍了nginx反向代理https的方法,今天这里介绍下haproxy代理https的方法: haproxy代理https有两种方式:1)haproxy服务器本身提供ssl证书, ...
- 利用Mysql5.7的新特性实现多机房高可用架构【转】
再牛逼的架构也敌不过挖掘机,无论单机房内你的架构多么的高可用,多么的完善,当挖掘机挖下去那一瞬间,都是扯蛋,楼主所在的公司也被挖掘机挖断过光纤.电力线. 为什么大家都在谈论服务冗余,缓存击穿等高可用时 ...
- -bash: /bin/rm: Argument list too long的解决办法【转】
当目录下文件太多时,用rm删除文件会报错: -bash: /bin/rm: Argument list too long 提示文件数目太多. 解决的办法是使用如下命令: ls | xargs -n 1 ...
- RobotFramework基本用法(二)
双击打开C:\Python27\Scripts目录下的 ride.py 一,定义变量,打印 1,右键File-->New Poreject,在项目下右键New suite,在套件下右键 New ...
- JAVA汉字转拼音(取首字母大写)
import net.sourceforge.pinyin4j.PinyinHelper;import net.sourceforge.pinyin4j.format.HanyuPinyinCaseT ...
- 洛谷P1841重要的城市
传送门啦 重要城市有三个性质如下: 1.重要城市能对其他两个不同城市的最短路径做出贡献 2.重要城市具有唯一性,如果两不同城市之间的最短路径有两种中间城市情况,那么这两个中间城市可以彼此代替,就都不能 ...