版本记录
版本号 | 时间 |
---|---|
V1.0 | 2017.06.11 |
前言
YYText是一个专门处理文字的框架,有了它处理文字变得非常方便,这一篇我继续介绍YYText的使用方法,希望对大家能有所帮助。大家如感兴趣还可以参考:
1.YYText使用篇(一)
2.YYText使用篇(二)
3.YYText使用篇(三)
4.YYText使用篇(四)
5.YYText使用篇(五)
6.YYText使用篇(六)
7.YYText使用篇(七)
8.YYText使用篇(八)
下面给出的实例就是markdown和Emoticon展示
一、YYText示例之markdown
下面直接看代码
#import "YYTextMarkdownExample.h"
#import "YYText.h"
#import "YYImage.h"
#import "UIImage+YYWebImage.h"
#import "UIView+YYAdd.h"
#import "NSBundle+YYAdd.h"
#import "NSString+YYAdd.h"
#import "YYTextExampleHelper.h"
@interface YYTextMarkdownExample () <YYTextViewDelegate>
@property (nonatomic, strong) YYTextView *textView;
@end
@implementation YYTextMarkdownExample
#pragma mark - Override Base Function
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
if ([self respondsToSelector:@selector(setAutomaticallyAdjustsScrollViewInsets:)]) {
self.automaticallyAdjustsScrollViewInsets = NO;
}
NSString *text = @"#Markdown Editor\nThis is a simple markdown editor based on `YYTextView`.\n\n*********************************************\nIt\'s *italic* style.\n\nIt\'s also _italic_ style.\n\nIt\'s **bold** style.\n\nIt\'s ***italic and bold*** style.\n\nIt\'s __underline__ style.\n\nIt\'s ~~deleteline~~ style.\n\n\nHere is a link: [YYKit](https://github.com/ibireme/YYKit)\n\nHere is some code:\n\n\tif(a){\n\t\tif(b){\n\t\t\tif(c){\n\t\t\t\tprintf(\"haha\");\n\t\t\t}\n\t\t}\n\t}\n";
YYTextSimpleMarkdownParser *parser = [YYTextSimpleMarkdownParser new];
[parser setColorWithDarkTheme];
YYTextView *textView = [YYTextView new];
textView.text = text;
textView.font = [UIFont systemFontOfSize:14];
textView.textParser = parser;
textView.size = self.view.size;
textView.textContainerInset = UIEdgeInsetsMake(10, 10, 10, 10);
textView.delegate = self;
if (kiOS7Later) {
textView.keyboardDismissMode = UIScrollViewKeyboardDismissModeInteractive;
}
textView.backgroundColor = [UIColor colorWithWhite:0.134 alpha:1.000];
textView.contentInset = UIEdgeInsetsMake(64, 0, 0, 0);
textView.scrollIndicatorInsets = textView.contentInset;
textView.selectedRange = NSMakeRange(text.length, 0);
[self.view addSubview:textView];
self.textView = textView;
}
#pragma mark - Action && Notification
- (void)edit:(UIBarButtonItem *)item
{
if (_textView.isFirstResponder) {
[_textView resignFirstResponder];
}
else {
[_textView becomeFirstResponder];
}
}
#pragma mark - YYTextViewDelegate
- (void)textViewDidBeginEditing:(YYTextView *)textView
{
UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
target:self
action:@selector(edit:)];
self.navigationItem.rightBarButtonItem = buttonItem;
}
- (void)textViewDidEndEditing:(YYTextView *)textView
{
self.navigationItem.rightBarButtonItem = nil;
}
@end
下面看效果展示图
二、YYText示例之Emoticon
下面看代码。
#import "YYTextEmoticonExample.h"
#import "YYText.h"
#import "YYImage.h"
#import "UIImage+YYWebImage.h"
#import "UIView+YYAdd.h"
#import "NSBundle+YYAdd.h"
#import "NSString+YYAdd.h"
#import "YYTextExampleHelper.h"
@interface YYTextEmoticonExample () <YYTextViewDelegate>
@property (nonatomic, strong) YYTextView *textView;
@end
@implementation YYTextEmoticonExample
#pragma mark - Override Base Function
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
if ([self respondsToSelector:@selector(setAutomaticallyAdjustsScrollViewInsets:)]) {
self.automaticallyAdjustsScrollViewInsets = NO;
}
NSMutableDictionary *mapper = [NSMutableDictionary new];
mapper[@":smile:"] = [self imageWithName:@"002"];
mapper[@":cool:"] = [self imageWithName:@"013"];
mapper[@":biggrin:"] = [self imageWithName:@"047"];
mapper[@":arrow:"] = [self imageWithName:@"007"];
mapper[@":confused:"] = [self imageWithName:@"041"];
mapper[@":cry:"] = [self imageWithName:@"010"];
mapper[@":wink:"] = [self imageWithName:@"085"];
YYTextSimpleEmoticonParser *parser = [YYTextSimpleEmoticonParser new];
parser.emoticonMapper = mapper;
YYTextLinePositionSimpleModifier *mod = [YYTextLinePositionSimpleModifier new];
mod.fixedLineHeight = 22;
YYTextView *textView = [YYTextView new];
textView.text = @"Hahahah:smile:, it\'s emoticons::cool::arrow::cry::wink:\n\nYou can input \":\" + \"smile\" + \":\" to display smile emoticon, or you can copy and paste these emoticons.\n";
textView.font = [UIFont systemFontOfSize:17];
textView.textParser = parser;
textView.size = self.view.size;
textView.linePositionModifier = mod;
textView.textContainerInset = UIEdgeInsetsMake(10, 10, 10, 10);
textView.delegate = self;
if (kiOS7Later) {
textView.keyboardDismissMode = UIScrollViewKeyboardDismissModeInteractive;
}
textView.contentInset = UIEdgeInsetsMake(64, 0, 0, 0);
textView.scrollIndicatorInsets = textView.contentInset;
[self.view addSubview:textView];
self.textView = textView;
[self.textView becomeFirstResponder];
}
#pragma mark - Object Private Function
- (UIImage *)imageWithName:(NSString *)name
{
NSBundle *bundle = [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@"EmoticonQQ" ofType:@"bundle"]];
NSString *path = [bundle pathForScaledResource:name ofType:@"gif"];
NSData *data = [NSData dataWithContentsOfFile:path];
YYImage *image = [YYImage imageWithData:data scale:2];
image.preloadAllAnimatedImageFrames = YES;
return image;
}
#pragma mark - Action && NOtification
- (void)edit:(UIBarButtonItem *)item
{
if (_textView.isFirstResponder) {
[_textView resignFirstResponder];
}
else {
[_textView becomeFirstResponder];
}
}
#pragma mark - YYTextViewDelegate
- (void)textViewDidBeginEditing:(YYTextView *)textView
{
UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
target:self
action:@selector(edit:)];
self.navigationItem.rightBarButtonItem = buttonItem;
}
- (void)textViewDidEndEditing:(YYTextView *)textView
{
self.navigationItem.rightBarButtonItem = nil;
}
@end
下面看效果展示图
后记
上面也是YYText里面的demo,写的很好,希望对大家有所帮助,谢谢大家。