iOS开发——UI篇Swift篇&UITextView
UITextView
一:UITextView使用及其属性的设置
1 titleLabel.text = titleString 2 3 //创建UITextView对象 4 textView = UITextView(frame:CGRectMake(10.0, 120.0, 300.0, 200.0)) 5 6 //为方便看到效果,设置背景颜色 7 textView.backgroundColor = UIColor.grayColor() 8 9 //添加到视图上 10 self.view.addSubview(textView) 11 12 13 //------------------ 常用属性 14 15 //设置textview里面的字体颜色 16 textView.textColor = UIColor.greenColor() 17 18 //设置文本字体 19 textView.font = UIFont.systemFontOfSize(18);//使用系统默认字体,指定14号字号 20 textView.font = UIFont(name: "Helvetica-Bold", size: 18)//指定字体,指定字号 21 22 //设置它的背景颜色 23 textView.backgroundColor = UIColor.grayColor() 24 25 //设置显示内容 26 textView.text = "经常听到:\n 被中介骗了,押金不退,晚一天交房租,被讹了。\n\n租房普遍现象:\n网上报价不真实?经常被忽悠!(看房时报价都比网上高!)\n证件不齐全,被骗过!(其实根本不是房东啦!)\n看房前态度都很热情!\n签约之后态度骤变!\n入住后家电维修只能靠自己!\n房屋到期,押金各种被勒索!\n\n现在开始,你来改变这一切!\n《租房点评》为你而备,租房无忧!\n\n再也不用担心被欺骗,想要知道给你介绍房子的人好不好,《租房点评》告诉你!" 27 28 //文本对齐方式 29 textView.textAlignment = NSTextAlignment.Right 30 31 //文本视图设置圆角 32 textView.layer.cornerRadius = 20 33 34 //是否允许点击链接和附件 35 textView.selectable = true 36 37 //返回键的类型 38 textView.returnKeyType = UIReturnKeyType.Done 39 40 //键盘类型 41 textView.keyboardType = UIKeyboardType.Default 42 43 //是否可以滚动 44 textView.scrollEnabled = true 45 46 //自适应高度 47 textView.autoresizingMask = UIViewAutoresizing.FlexibleHeight 48 49 //设置富文本 50 var attributeString:NSMutableAttributedString=NSMutableAttributedString(string: "经常听到:\n 被中介骗了,押金不退,晚一天交房租,被讹了。\n\n租房普遍现象:\n网上报价不真实?经常被忽悠!(看房时报价都比网上高!)\n证件不齐全,被骗过!(其实根本不是房东啦!)\n看房前态度都很热情!\n签约之后态度骤变!\n入住后家电维修只能靠自己!\n房屋到期,押金各种被勒索!\n\n现在开始,你来改变这一切!\n《租房点评》为你而备,租房无忧!\n\n再也不用担心被欺骗,想要知道给你介绍房子的人好不好,《租房点评》告诉你!") 51 52 //设置字体颜色 53 attributeString.addAttribute(NSForegroundColorAttributeName, value: UIColor.greenColor(), range: NSMakeRange(0, attributeString.length)) 54 55 //文本所有字符字体HelveticaNeue-Bold,16号 56 attributeString.addAttribute(NSFontAttributeName, value: UIFont(name: "HelveticaNeue-Bold", size: 16)!, range: NSMakeRange(0, attributeString.length)) 57 58 //文本0开始5个字符字体HelveticaNeue-Bold,16号 59 attributeString.addAttribute(NSFontAttributeName, value: UIFont(name: "HelveticaNeue-Bold", size: 26)!, range: NSMakeRange(0, 5)) 60 61 //设置字体颜色 62 attributeString.addAttribute(NSForegroundColorAttributeName, value: UIColor.whiteColor(), range: NSMakeRange(0, 3)) 63 64 //设置文字背景颜色 65 attributeString.addAttribute(NSBackgroundColorAttributeName, value: UIColor.orangeColor(), range: NSMakeRange(3, 3)) 66 67 //赋值富文本 68 textView.attributedText = attributeString 69 70 //选中一段文本 71 textView.becomeFirstResponder() 72 textView.selectedRange = NSMakeRange(30, 10) 73 74 //获取内容整体高度 75 var height:CGFloat = textView.contentSize.height; 76 77 78 79 //-------------------------------------------自定义菜单 80 81 //定义4个菜单选择 82 var menuItem1:UIMenuItem = UIMenuItem(title: "分享到微信", action: "shareWXMenu:") 83 var menuItem2:UIMenuItem = UIMenuItem(title: "分享到微博", action: "shareWBMenu:") 84 85 //获取菜单控制器 86 var menuController:UIMenuController = UIMenuController.sharedMenuController() 87 menuController.menuItems = [menuItem1,menuItem2] 88 89 90 91 92 //-------------------------------------------指定代理 93 textView.delegate = self 94 95 //-------------------------------------------添加通知 96 //文本框开始编辑时,触发 97 NSNotificationCenter.defaultCenter().addObserver(self, selector: "textDidBeginEditing", name: UITextViewTextDidBeginEditingNotification, object: nil) 98 99 //文本框编辑结束时,触发 100 NSNotificationCenter.defaultCenter().addObserver(self, selector: "textDidEndEditing", name: UITextViewTextDidEndEditingNotification, object: nil) 101 102 //文本框内容改变时,触发 103 NSNotificationCenter.defaultCenter().addObserver(self, selector: "textDidChange", name: UITextViewTextDidChangeNotification, object: nil) 104 105 106
二:相应方法和代理方法的实现
1 2 func textDidBeginEditing() 3 { 4 println("开始输入文本...") 5 } 6 7 func textDidEndEditing() 8 { 9 println("结束输入...") 10 } 11 12 func textDidChange() 13 { 14 println("正在输入...") 15 } 16 17 18 19 20 /* 21 // MARK: - Navigation 22 23 // In a storyboard-based application, you will often want to do a little preparation before navigation 24 override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) { 25 // Get the new view controller using segue.destinationViewController. 26 // Pass the selected object to the new view controller. 27 } 28 */ 29 30 // MARK: - UITextFieldDelegate 31 func textViewShouldBeginEditing(textView: UITextView) -> Bool 32 { 33 return true //如果返回false,文本视图不能编辑 34 } 35 36 func textViewShouldEndEditing(textView: UITextView) -> Bool 37 { 38 return true //如果返回false,表示编辑结束之后,文本视图不可再编辑 39 } 40 41 func textViewDidBeginEditing(textView: UITextView) 42 { 43 //文本视图开始编辑,这个时候我们可以处理一些事情 44 } 45 46 func textViewDidEndEditing(textView: UITextView) 47 { 48 //文本视图编辑结束,这个时候我们可以处理一些事情 49 } 50 51 func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool 52 { 53 //文本视图内容改变时,触发本方法,能得到改变的坐标和改变的内容 54 55 //如果是回车符号,则textView释放第一响应值,返回false 56 if (text == "\n") { 57 textView.resignFirstResponder() 58 return false; 59 } 60 return true 61 } 62 63 func textViewDidChange(textView: UITextView) 64 { 65 //文本视图改变后触发本代理方法 66 } 67 68 func textViewDidChangeSelection(textView: UITextView) 69 { 70 //文本视图 改变选择内容,触发本代理方法 71 } 72 73 //@availability(iOS, introduced=7.0) 74 func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool 75 { 76 //链接在文本中显示。当链接被点击的时候,会触发本代理方法 77 78 return true 79 } 80 81 //@availability(iOS, introduced=7.0) 82 func textView(textView: UITextView, shouldInteractWithTextAttachment textAttachment: NSTextAttachment, inRange characterRange: NSRange) -> Bool 83 { 84 //文本视图允许提供文本附件,文本附件点击时,会触发本代理方法 85 return true 86 } 87 88 89 90 91 92 //按钮显示方法 93 override func canPerformAction(action: Selector, withSender sender: AnyObject?) -> Bool { 94 95 //判断有没有选中文字, 96 //如果选择,输出选择的文本 97 var isSelect:Bool = textView.selectedRange.length > 0 98 99 100 if(action == "shareWXMenu:" && isSelect)//选择文本,并点击分享到微信菜单 101 { 102 return true; 103 } 104 else if(action == "shareWBMenu:" && isSelect)//选择文本,并点击分享到微博菜单 105 { 106 107 return true; 108 } 109 110 return false; //不显示系统的菜单,改成true对比一下效果 111 } 112 113 114 115 //分享到微信 116 func shareWXMenu(sender: AnyObject?) 117 { 118 if textView.selectedRange.length > 0 { 119 println((textView.text as NSString).substringWithRange(textView.selectedRange)) 120 } 121 122 println("这里实现 分享到微信 功能") 123 } 124 //分享到微博 125 func shareWBMenu(sender: AnyObject?) 126 { 127 println("这里实现 分享到微博 功能") 128 }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。