1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- //
- // YYTextEmoticonExample.m
- // YYKitExample
- //
- // Created by ibireme on 15/9/3.
- // Copyright (c) 2015 ibireme. All rights reserved.
- //
- #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
- - (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;
-
- 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.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];
-
- }
- - (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;
- }
- - (void)edit:(UIBarButtonItem *)item {
- if (_textView.isFirstResponder) {
- [_textView resignFirstResponder];
- } else {
- [_textView becomeFirstResponder];
- }
- }
- - (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
|