1.创建并初始化
创建UITextView的文件,并在.h文件中写入如下代码:
#import <UIKit/UIKit.h> @interface TextViewController : UIViewController <UITextViewDelegate> { UITextView *textView; } @property (nonatomic, retain) UITextView *textView; @end
self.textView = [[[UITextView alloc] initWithFrame:self.view.frame]autorelease]; //初始化大小并自动释放 self.textView.textColor = [UIColor blackColor];//设置textview里面的字体颜色 self.textView.font = [UIFont fontWithName:@"Arial" size:18.0];//设置字体名字和字体大小 self.textView.delegate = self;//设置它的委托方法 self.textView.backgroundColor = [UIColor whiteColor];//设置它的背景颜色 self.textView.text = @"Now is the time for all good developers tocome to serve their country.\n\nNow is the time for all good developers to cometo serve their country.";//设置它显示的内容 self.textView.returnKeyType = UIReturnKeyDefault;//返回键的类型 self.textView.keyboardType = UIKeyboardTypeDefault;//键盘类型 self.textView.scrollEnabled = YES;//是否可以拖动 self.textView.autoresizingMask = UIViewAutoresizingFlexibleHeight;//自适应高度 [self.view addSubview: self.textView];//加入到整个页面中
- (void)textViewDidBeginEditing:(UITextView *)textView { UIBarButtonItem *done = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(leaveEditMode)] autorelease]; self.navigationItem.rightBarButtonItem = done; } - (void)textViewDidEndEditing:(UITextView *)textView { self.navigationItem.rightBarButtonItem = nil; } - (void)leaveEditMode { [self.textView resignFirstResponder]; }
#pragma mark - UITextView Delegate Methods -(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { if ([text isEqualToString:@"\n"]) { [textView resignFirstResponder]; return NO; } return YES; }
UIToolbar * topView = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 30)]; [topView setBarStyle:UIBarStyleBlack]; UIBarButtonItem * helloButton = [[UIBarButtonItem alloc]initWithTitle:@"Hello" style:UIBarButtonItemStyleBordered target:self action:nil]; UIBarButtonItem * btnSpace = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil]; UIBarButtonItem * doneButton = [[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(dismissKeyBoard)]; NSArray * buttonsArray = [NSArray arrayWithObjects:helloButton,btnSpace,doneButton,nil]; [doneButton release]; [btnSpace release]; [helloButton release]; [topView setItems:buttonsArray]; [tvTextView setInputAccessoryView:topView]; -(IBAction)dismissKeyBoard { [tvTextView resignFirstResponder]; }
NSString * desc = @"Description it is a test font, and don't become angry for which i use to do here.Now here is a very nice party from american or not!"; CGSize size = [desc sizeWithFont:[UIFont systemFontOfSize:14] constrainedToSize:CGSizeMake(240, 2000) lineBreakMode:UILineBreakModeWordWrap];
[label setNumberOfLines:0]; [label setFrame:CGRectMake(40, 135, 240, size.height+10)]; [label setText:desc];
UIMenuItem *menuItem = [[UIMenuItem alloc]initWithTitle:@"分享到新浪微博" action:@selector(changeColor:)]; UIMenuController *menu = [UIMenuController sharedMenuController]; [menu setMenuItems:[NSArray arrayWithObject:menuItem]]; [menuItem release];
-(BOOL)canPerformAction:(SEL)action withSender:(id)sender { if(action ==@selector(changeColor:)) { if(textView.selectedRange.length>0) return YES; } return NO; }
3.一些个性化定制
总体来说个性化定制UITextView中的内容有两种方法:
(1)从文件中读取内容到UITextView,这个个人感觉使用rtfd和rtf格式文件效果非常好。
(2)使用NSAttributeString进行定制
具体方法如下:
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc]init]; paragraphStyle.lineHeightMultiple = 20.f; paragraphStyle.maximumLineHeight = 25.f; paragraphStyle.minimumLineHeight = 15.f; paragraphStyle.firstLineHeadIndent = 20.f; paragraphStyle.alignment = NSTextAlignmentJustified; NSDictionary *attributes = @{ NSFontAttributeName:[UIFont systemFontOfSize:14], NSParagraphStyleAttributeName:paragraphStyle, NSForegroundColorAttributeName:[UIColor colorWithRed:76./255. green:75./255. blue:71./255. alpha:1] }; textView.attributedText = [[NSAttributedString alloc]initWithString:content attributes:attributes];
当然也可以初始化一个NSMutableAttributedString,然后向里面添加文字样式,最后将它赋给textView的AttributedText即可
NSMutableAttributedString *atr = [[NSMutableAttributedString alloc]initWithString:detail]; [atr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:14] range:NSMakeRange(0, detail.length)]; textView.attributedText = atr;
另外,对于textview中的链接样式,同样也可以定制
NSDictionary *linkAttributes = @{NSForegroundColorAttributeName: [UIColor blueColor], NSUnderlineColorAttributeName: [UIColor blackColor], NSUnderlineStyleAttributeName: @(NSUnderlinePatternDash)}; self.linkTextAttributes = linkAttributes;
这里只是个简单的例子,具体还有很多属性可以自行参考头文件
本文向大家介绍举例讲解设计模式中的原型模式在iOS应用开发中的作用,包括了举例讲解设计模式中的原型模式在iOS应用开发中的作用的使用技巧和注意事项,需要的朋友参考一下 1 前言 在许多面向对象的应用程序中,有些对象的创建代价过于大或者过于复杂。要是可以重建相同的对象并作轻微的改动,事情会容易许多。我们可以通过轻微的改动重用已有的对象,以适应程序中的特定情况。今天我们就来学习一下该模式。 2 详述
本文向大家介绍深入讲解iOS开发中的UIViewController,包括了深入讲解iOS开发中的UIViewController的使用技巧和注意事项,需要的朋友参考一下 UIViewController顾名思义:视图控制器。应该在MVC设计模式中扮演控制层的角色。一些初学者在最开始的时候一直不理解为何有了UIView还要UIViewController做什么用,不都是向视图中增加view。在此我
本文向大家介绍实例讲解iOS应用开发中使用UITableView创建自定义表格,包括了实例讲解iOS应用开发中使用UITableView创建自定义表格的使用技巧和注意事项,需要的朋友参考一下 一、带索引目录的表视图 1.效果图 2.数据源 本想获取通讯录中得名字,但为了用模拟器调试方便,就写死了数据,所以也只写了部分字母,总之有那么点意思就成 3.显示索引 二、可以进行行标记的表视图 1.效果图
本文向大家介绍iOS开发中使用SQL语句操作数据库的基本用法指南,包括了iOS开发中使用SQL语句操作数据库的基本用法指南的使用技巧和注意事项,需要的朋友参考一下 SQL代码应用示例 一、使用代码的方式批量添加(导入)数据到数据库中 1.执行SQL语句在数据库中添加一条信息 插入一条数据的sql语句: 点击run执行语句之后,刷新数据 2.在ios项目中使用代码批量添加多行数据示例 代码示例:
本文向大家介绍iOS应用中使用AsyncSocket库处理Socket通信的用法讲解,包括了iOS应用中使用AsyncSocket库处理Socket通信的用法讲解的使用技巧和注意事项,需要的朋友参考一下 用socket可以实现像QQ那样发送即时消息的功能。客户端和服务端需要建立长连接,在长连接的情况下,发送消息。客户端可以发送心跳包来检测长连接。 在iOS开发中使用socket,一般都是用第三方库
本文向大家介绍iOS应用开发中UITabBarController标签栏控制器使用进阶,包括了iOS应用开发中UITabBarController标签栏控制器使用进阶的使用技巧和注意事项,需要的朋友参考一下 做了这么长时间的ios开发了,最基本的UITabBarController和UINavigationController都用了好长时间了,总是改现成的代码,或者各种自定义控件的修改,用的都有些