iOS开发——UI篇Swift篇&UITextView
UITextView
一:UITextView使用及其属性的设置
titleLabel.text = titleString
//创建UITextView对象
textView = UITextView(frame:CGRectMake(10.0, 120.0, 300.0, 200.0))
//为方便看到效果,设置背景颜色
textView.backgroundColor = UIColor.grayColor()
//添加到视图上
self.view.addSubview(textView)
//------------------ 常用属性
//设置textview里面的字体颜色
textView.textColor = UIColor.greenColor()
//设置文本字体
textView.font = UIFont.systemFontOfSize();//使用系统默认字体,指定14号字号
textView.font = UIFont(name: )//指定字体,指定字号
//设置它的背景颜色
textView.backgroundColor = UIColor.grayColor()
//设置显示内容
textView.text = "经常听到:\n 被中介骗了,押金不退,晚一天交房租,被讹了。\n\n租房普遍现象:\n网上报价不真实?经常被忽悠!(看房时报价都比网上高!)\n证件不齐全,被骗过!(其实根本不是房东啦!)\n看房前态度都很热情!\n签约之后态度骤变!\n入住后家电维修只能靠自己!\n房屋到期,押金各种被勒索!\n\n现在开始,你来改变这一切!\n《租房点评》为你而备,租房无忧!\n\n再也不用担心被欺骗,想要知道给你介绍房子的人好不好,《租房点评》告诉你!"
//文本对齐方式
textView.textAlignment = NSTextAlignment.Right
//文本视图设置圆角
textView.layer.cornerRadius =
//是否允许点击链接和附件
textView.selectable = true
//返回键的类型
textView.returnKeyType = UIReturnKeyType.Done
//键盘类型
textView.keyboardType = UIKeyboardType.Default
//是否可以滚动
textView.scrollEnabled = true
//自适应高度
textView.autoresizingMask = UIViewAutoresizing.FlexibleHeight
//设置富文本
var attributeString:NSMutableAttributedString=NSMutableAttributedString(string: "经常听到:\n 被中介骗了,押金不退,晚一天交房租,被讹了。\n\n租房普遍现象:\n网上报价不真实?经常被忽悠!(看房时报价都比网上高!)\n证件不齐全,被骗过!(其实根本不是房东啦!)\n看房前态度都很热情!\n签约之后态度骤变!\n入住后家电维修只能靠自己!\n房屋到期,押金各种被勒索!\n\n现在开始,你来改变这一切!\n《租房点评》为你而备,租房无忧!\n\n再也不用担心被欺骗,想要知道给你介绍房子的人好不好,《租房点评》告诉你!")
//设置字体颜色
attributeString.addAttribute(NSForegroundColorAttributeName, value: UIColor.greenColor(), range: NSMakeRange(, attributeString.length))
//文本所有字符字体HelveticaNeue-Bold,16号
attributeString.addAttribute(NSFontAttributeName, value: UIFont(name: )!, range: NSMakeRange(, attributeString.length))
//文本0开始5个字符字体HelveticaNeue-Bold,16号
attributeString.addAttribute(NSFontAttributeName, value: UIFont(name: )!, range: NSMakeRange(, ))
//设置字体颜色
attributeString.addAttribute(NSForegroundColorAttributeName, value: UIColor.whiteColor(), range: NSMakeRange(, ))
//设置文字背景颜色
attributeString.addAttribute(NSBackgroundColorAttributeName, value: UIColor.orangeColor(), range: NSMakeRange(, ))
//赋值富文本
textView.attributedText = attributeString
//选中一段文本
textView.becomeFirstResponder()
textView.selectedRange = NSMakeRange(, )
//获取内容整体高度
var height:CGFloat = textView.contentSize.height;
//-------------------------------------------自定义菜单
//定义4个菜单选择
var menuItem1:UIMenuItem = UIMenuItem(title: "分享到微信", action: "shareWXMenu:")
var menuItem2:UIMenuItem = UIMenuItem(title: "分享到微博", action: "shareWBMenu:")
//获取菜单控制器
var menuController:UIMenuController = UIMenuController.sharedMenuController()
menuController.menuItems = [menuItem1,menuItem2]
//-------------------------------------------指定代理
textView.delegate = self
//-------------------------------------------添加通知
//文本框开始编辑时,触发
NSNotificationCenter.defaultCenter().addObserver(self, selector: "textDidBeginEditing", name: UITextViewTextDidBeginEditingNotification, object: nil)
//文本框编辑结束时,触发
NSNotificationCenter.defaultCenter().addObserver(self, selector: "textDidEndEditing", name: UITextViewTextDidEndEditingNotification, object: nil)
//文本框内容改变时,触发
NSNotificationCenter.defaultCenter().addObserver(self, selector: "textDidChange", name: UITextViewTextDidChangeNotification, object: nil)
二:相应方法和代理方法的实现
func textDidBeginEditing()
{
println("开始输入文本...")
}
func textDidEndEditing()
{
println("结束输入...")
}
func textDidChange()
{
println("正在输入...")
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
}
*/
// MARK: - UITextFieldDelegate
func textViewShouldBeginEditing(textView: UITextView) -> Bool
{
return true //如果返回false,文本视图不能编辑
}
func textViewShouldEndEditing(textView: UITextView) -> Bool
{
return true //如果返回false,表示编辑结束之后,文本视图不可再编辑
}
func textViewDidBeginEditing(textView: UITextView)
{
//文本视图开始编辑,这个时候我们可以处理一些事情
}
func textViewDidEndEditing(textView: UITextView)
{
//文本视图编辑结束,这个时候我们可以处理一些事情
}
func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool
{
//文本视图内容改变时,触发本方法,能得到改变的坐标和改变的内容
//如果是回车符号,则textView释放第一响应值,返回false
if (text == "\n") {
textView.resignFirstResponder()
return false;
}
return true
}
func textViewDidChange(textView: UITextView)
{
//文本视图改变后触发本代理方法
}
func textViewDidChangeSelection(textView: UITextView)
{
//文本视图 改变选择内容,触发本代理方法
}
//@availability(iOS, introduced=7.0)
func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool
{
//链接在文本中显示。当链接被点击的时候,会触发本代理方法
return true
}
//@availability(iOS, introduced=7.0)
func textView(textView: UITextView, shouldInteractWithTextAttachment textAttachment: NSTextAttachment, inRange characterRange: NSRange) -> Bool
{
//文本视图允许提供文本附件,文本附件点击时,会触发本代理方法
return true
}
//按钮显示方法
override func canPerformAction(action: Selector, withSender sender: AnyObject?) -> Bool {
//判断有没有选中文字,
//如果选择,输出选择的文本
if(action == "shareWXMenu:" && isSelect)//选择文本,并点击分享到微信菜单
{
return true;
}
else if(action == "shareWBMenu:" && isSelect)//选择文本,并点击分享到微博菜单
{
return true;
}
return false; //不显示系统的菜单,改成true对比一下效果
}
//分享到微信
func shareWXMenu(sender: AnyObject?)
{
{
println((textView.text as NSString).substringWithRange(textView.selectedRange))
}
println("这里实现 分享到微信 功能")
}
//分享到微博
func shareWBMenu(sender: AnyObject?)
{
println("这里实现 分享到微博 功能")
}
iOS开发——UI篇Swift篇&UITextView的更多相关文章
- iOS开发——技术精华Swift篇&Swift 2.0和Objective-C2.0混编之第三方框架的使用
swift 语言是苹果公司在2014年的WWDC大会上发布的全新的编程语言.Swift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题.Swift语言采用安全编程模式,且引 ...
- iOS开发——新特性Swift篇&Swift 2.0 异常处理
Swift 2.0 异常处理 WWDC 2015 宣布了新的 Swift 2.0. 这次重大更新给 Swift 提供了新的异常处理方法.这篇文章会主要围绕这个方面进行讨论. 如何建造异常类型? 在 i ...
- iOS开发——UI精选OC篇&UIApplication,UIWindow,UIViewController,UIView(layer)简单介绍
UIApplication,UIWindow,UIViewController,UIView(layer)简单介绍 一:UIApplication:单例(关于单例后面的文章中会详细介绍,你现在只要知道 ...
- iOS开发——网络编程Swift篇&Alamofire详解
Alamofire详解 预览图 Swift Alamofire 简介 Alamofire是 Swift 语言的 HTTP 网络开发工具包,相当于Swift实现AFNetworking版本. 当然,AF ...
- ios开发——实用技术总结Swift篇&swift常用开发技术总结
swift常用开发技术总结 懒加载:属性,数组(字典),控件... 数组(懒加载): lazy var shops:Array<Dictionary<String, String>& ...
- iOS开发——网络编程Swift篇&(八)SwiftyJSON详解
SwiftyJSON详解 最近看了一些网络请求的例子,发现Swift在解析JSON数据时特别别扭,总是要写一大堆的downcast(as?)和可选(Optional),看?号都看花了.随后发现了这个库 ...
- ios开发——实用技术篇Swift篇&地址薄、短信、邮件
//返回按钮事件 @IBAction func backButtonClick() { self.navigationController?.popViewControllerAnimated(tru ...
- iOS开发——图形编程Swift篇&CAShapeLayer实现圆形图片加载动画
CAShapeLayer实现圆形图片加载动画 几个星期之前,Michael Villar在Motion试验中创建一个非常有趣的加载动画. 下面的GIF图片展示这个加载动画,它将一个圆形进度指示器和圆形 ...
- iOS开发零基础--Swift篇 元组
元组的介绍 元组是Swift中特有的,OC中并没有相关类型 它是什么呢? 它是一种数据结构,在数学中应用广泛 类似于数组或者字典 可以用于定义一组数据 组成元组类型的数据可以称为“元素” 元组的定义 ...
- iOS开发零基础--Swift篇 循环
循环的介绍 在开发中经常会需要循环 常见的循环有:for/while/do while. 这里我们只介绍for/while,因为for/while最常见 for循环的写法 最常规写法 // 传统写法 ...
随机推荐
- Beginner’s Guide(开始者向导)
This guide gives a basic introduction to nginx and describes some simple tasks that can be done with ...
- SAS、R以及SPSS的比较__统计语言大战
- C#/.net给textbox添加回车事件
前端js代码,放到<head>标签下 <script type="text/javascript"> function EnterTextBox(butto ...
- Android 设置 横屏 竖屏 (转)
http://2960629.blog.51cto.com/2950629/701227 方法一:在AndroidManifest.xml中配置 如果不想让软件在横竖屏之间切换,最简单的办法就是在项目 ...
- POJ 2395 Out of Hay(MST)
[题目链接]http://poj.org/problem?id=2395 [解题思路]找最小生成树中权值最大的那条边输出,模板过的,出现了几个问题,开的数据不够大导致运行错误,第一次用模板,理解得不够 ...
- dom 冒泡事件
<!doctype html> <html> <head> <meta charset="utf-8"> <style> ...
- 关于 python 的 @property总结和思考
其实关于@property我到处去搜了很多教程来看,因为公司大量使用了oop的编程而我以前很少写,所以现在来重新补过来. 从使用上来说 加了@property之后最明显的区别就是 class Stud ...
- Cocos2d-x单机游戏防八门神器修改数据
来源:http://cocos2d.9tech.cn/news/2014/0212/39812.html 网上的cocos2d-x教程多为知识点的讲解,但我们学习cocos2d-x的目的是为了什么?为 ...
- <转载>内存管理内幕-动态分配的选择、折衷和实现 对malloc内存分配有个简单的描述,对内存管理有个大致的说明
这篇文章看后感觉不错,和我在glibc下的hurdmalloc.c文件里关于malloc的实现基本意思相同,同时,这篇文章还介绍了一些内存管理方面的知识,值得推荐. 原文链接地址为:http://ww ...
- PyQt多窗口调用
经常有人问到如何在一个主窗口中打开一个对话框,然后在确认对话框之后,开启另一个窗口进行后续操作,要求主窗口和最终的窗口之间都能响应用户操作,也就是非模态窗口.随手写了几行代码,简要示意. :::pyt ...