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的更多相关文章

  1. iOS开发——技术精华Swift篇&Swift 2.0和Objective-C2.0混编之第三方框架的使用

    swift 语言是苹果公司在2014年的WWDC大会上发布的全新的编程语言.Swift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题.Swift语言采用安全编程模式,且引 ...

  2. iOS开发——新特性Swift篇&Swift 2.0 异常处理

    Swift 2.0 异常处理 WWDC 2015 宣布了新的 Swift 2.0. 这次重大更新给 Swift 提供了新的异常处理方法.这篇文章会主要围绕这个方面进行讨论. 如何建造异常类型? 在 i ...

  3. iOS开发——UI精选OC篇&UIApplication,UIWindow,UIViewController,UIView(layer)简单介绍

    UIApplication,UIWindow,UIViewController,UIView(layer)简单介绍 一:UIApplication:单例(关于单例后面的文章中会详细介绍,你现在只要知道 ...

  4. iOS开发——网络编程Swift篇&Alamofire详解

    Alamofire详解 预览图 Swift Alamofire 简介 Alamofire是 Swift 语言的 HTTP 网络开发工具包,相当于Swift实现AFNetworking版本. 当然,AF ...

  5. ios开发——实用技术总结Swift篇&swift常用开发技术总结

    swift常用开发技术总结 懒加载:属性,数组(字典),控件... 数组(懒加载): lazy var shops:Array<Dictionary<String, String>& ...

  6. iOS开发——网络编程Swift篇&(八)SwiftyJSON详解

    SwiftyJSON详解 最近看了一些网络请求的例子,发现Swift在解析JSON数据时特别别扭,总是要写一大堆的downcast(as?)和可选(Optional),看?号都看花了.随后发现了这个库 ...

  7. ios开发——实用技术篇Swift篇&地址薄、短信、邮件

    //返回按钮事件 @IBAction func backButtonClick() { self.navigationController?.popViewControllerAnimated(tru ...

  8. iOS开发——图形编程Swift篇&CAShapeLayer实现圆形图片加载动画

    CAShapeLayer实现圆形图片加载动画 几个星期之前,Michael Villar在Motion试验中创建一个非常有趣的加载动画. 下面的GIF图片展示这个加载动画,它将一个圆形进度指示器和圆形 ...

  9. iOS开发零基础--Swift篇 元组

    元组的介绍 元组是Swift中特有的,OC中并没有相关类型 它是什么呢? 它是一种数据结构,在数学中应用广泛 类似于数组或者字典 可以用于定义一组数据 组成元组类型的数据可以称为“元素” 元组的定义 ...

  10. iOS开发零基础--Swift篇 循环

    循环的介绍 在开发中经常会需要循环 常见的循环有:for/while/do while. 这里我们只介绍for/while,因为for/while最常见 for循环的写法 最常规写法 // 传统写法 ...

随机推荐

  1. [转]简析 IOS 程序图标的设计

    表现形态**** 在有限的空间里表达出相对应的信息,在IOS 程序图标设计中,直观是第一个解决的问题,不应该出现大多繁琐的修饰,当然还要有很好的视觉表现力,使用户可以更容易理解此应用的实际作用,更轻松 ...

  2. vim 配置语法高亮 行号标示

    配置VIM主要是开启VIM的语法高亮和行号标示,因为默认在用户目录(~)下没有vimrc,所以需要先去复制一个,然后再编辑 cp /etc/vim/vimrc ~/.vimrc vim .vimrc ...

  3. (翻译)从底层了解ASP.NET体系结构 [转]

    转自:http://www.cnblogs.com/rijing2004/archive/2007/09/14/howaspnetwork.html 前言 关于ASP.NET的底层的工作机制,最近园子 ...

  4. easyui datagrid 部分参数整理

    数据表格属性(DataGrid Properties) 属性继承控制面板,以下是数据表格独有的属性. 名称 类型 描述 默认值 columns array 数据表格列配置对象,查看列属性以获取更多细节 ...

  5. HD2043猜密码

    密码 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission ...

  6. Altium Designer 6三维元件库建模教程

    一.AD6.9 PCB编辑环境下如何使用STEP模型的方法. 在PCB 封装库中添加对应的3D模型,然后选择update pcb 即可 方法:在PCB library 页面,点击place -- 3d ...

  7. Cisco ASA5500系列防火墙恢复IOS全过程

    擦除防火墙配置的命令是write erase而不是erase flash!当ASA5510的flash被erase后,如何将新的IOS拷贝到5510内呢? 如下:1. 当flash被erase后设备会 ...

  8. mysql show processlist 命令详解

    命令格式 SHOW [FULL] PROCESSLIST SHOW PROCESSLIST显示哪些线程正在运行.您也可以使用mysqladmin processlist语句得到此信息.如果您有SUPE ...

  9. c++字符串机理

    在windows编程中,由于编码方式的不同和c与c++的不同而造成了许多复杂的有关字符串之间的转换 首先,windows编码方式有ANSCLL和UNICODE,前者是单字符的,后者是双字符的. 然后, ...

  10. 浅谈iOS IPv6-only 新规

    5月份苹果发布新规,对于开发人员只需要做到以下几点就能顺利上线啦! 1.苹果从6月1日起,提供App Store审核的应用必须要兼容面向硬件识别和网络路由的最新互联网协议--IPv6-only标准.也 ...