小说绘上架版本
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
//
|
||||
// TFTextView.h
|
||||
// TFReader
|
||||
//
|
||||
// Created by 谢腾飞 on 2020/12/23.
|
||||
// Copyright © 2020 xtfei_2011@126.com. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@protocol TFTextViewDelegate <NSObject>
|
||||
@optional
|
||||
|
||||
- (void)textViewDidChange:(NSString *)text;
|
||||
|
||||
@end
|
||||
|
||||
@interface TFTextView : UIView
|
||||
|
||||
@property (nonatomic ,assign) NSUInteger maxWordCount;
|
||||
@property (nonatomic ,copy ,readonly) NSString *text;
|
||||
@property (nonatomic ,weak) id<TFTextViewDelegate> delegate;
|
||||
|
||||
- (void)resetPlaceholderText:(NSString *)placeholderText;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,114 @@
|
||||
//
|
||||
// TFTextView.m
|
||||
// TFReader
|
||||
//
|
||||
// Created by 谢腾飞 on 2020/12/23.
|
||||
// Copyright © 2020 xtfei_2011@126.com. All rights reserved.
|
||||
//
|
||||
|
||||
#import "TFTextView.h"
|
||||
#import <YYKit.h>
|
||||
|
||||
@interface TFTextView ()<YYTextViewDelegate>
|
||||
|
||||
@property (nonatomic ,strong) YYTextView *textView;
|
||||
@property (nonatomic ,strong) UILabel *countLabel;
|
||||
@property (nonatomic ,strong) NSString *textStr;
|
||||
|
||||
@end
|
||||
|
||||
@implementation TFTextView
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame
|
||||
{
|
||||
if (self = [super initWithFrame:frame]) {
|
||||
|
||||
self.layer.borderColor = kGrayViewColor.CGColor;
|
||||
self.layer.borderWidth = 0.6;
|
||||
self.backgroundColor = [UIColor whiteColor];
|
||||
|
||||
[self createSubViews];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)createSubViews
|
||||
{
|
||||
self.textView = [[YYTextView alloc] initWithFrame:CGRectZero];
|
||||
self.textView.placeholderText = TFLocalizedString(@"说说你的看法...");
|
||||
self.textView.placeholderFont = kFont13;
|
||||
self.textView.placeholderTextColor = [UIColor grayColor];
|
||||
self.textView.font = kMainFont;
|
||||
self.textView.textColor = kBlackColor;
|
||||
self.textView.delegate = self;
|
||||
[self addSubview:self.textView];
|
||||
|
||||
[self.textView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self.mas_left).with.offset(5);
|
||||
make.top.mas_equalTo(self.mas_top).with.offset(5);
|
||||
make.width.mas_equalTo(self.mas_width).with.offset(- 10);
|
||||
make.height.mas_equalTo(self.mas_height).with.offset(- 20);
|
||||
}];
|
||||
|
||||
|
||||
UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 40)];
|
||||
toolBar.barStyle = UIBarStyleDefault;
|
||||
UIBarButtonItem *flexibleSpaceItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
|
||||
UIBarButtonItem *doneItem = [[UIBarButtonItem alloc] initWithTitle:TFLocalizedString(@"完成") style:UIBarButtonItemStyleDone target:self action:@selector(hideKeyboard)];
|
||||
[toolBar setItems:@[flexibleSpaceItem, doneItem]];
|
||||
self.textView.inputAccessoryView = toolBar;
|
||||
|
||||
|
||||
self.countLabel = [[UILabel alloc] init];
|
||||
self.countLabel.font = kFont10;
|
||||
self.countLabel.textColor = kGrayTextColor;
|
||||
self.countLabel.hidden = YES;
|
||||
self.countLabel.textAlignment = NSTextAlignmentRight;
|
||||
[self addSubview:self.countLabel];
|
||||
|
||||
[self.countLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.mas_equalTo(self.textView.mas_left);
|
||||
make.bottom.mas_equalTo(self.mas_bottom).with.offset(-5);
|
||||
make.width.mas_equalTo(self.textView.mas_width);
|
||||
make.height.mas_equalTo(10);
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)setMaxWordCount:(NSUInteger)maxWordCount
|
||||
{
|
||||
_maxWordCount = maxWordCount;
|
||||
if (maxWordCount > 0) {
|
||||
self.countLabel.hidden = NO;
|
||||
self.countLabel.text = [NSString stringWithFormat:@"%@/%@", [TFUtilsHelper formatStringWithInteger:0], [TFUtilsHelper formatStringWithInteger:_maxWordCount]];
|
||||
}
|
||||
}
|
||||
|
||||
- (NSString *)text
|
||||
{
|
||||
return [self.textView.text stringByReplacingOccurrencesOfString:@"\n" withString:@""];
|
||||
}
|
||||
|
||||
- (void)resetPlaceholderText:(NSString *)placeholderText
|
||||
{
|
||||
self.textView.placeholderText = placeholderText;
|
||||
}
|
||||
|
||||
- (void)textViewDidChange:(YYTextView *)textView
|
||||
{
|
||||
if (textView.text.length >= _maxWordCount) {
|
||||
textView.text = [textView.text substringToIndex:_maxWordCount];
|
||||
}
|
||||
|
||||
if ([self.delegate respondsToSelector:@selector(textViewDidChange:)]) {
|
||||
[self.delegate textViewDidChange:textView.text];
|
||||
}
|
||||
|
||||
self.countLabel.text = [NSString stringWithFormat:@"%@/%@", [TFUtilsHelper formatStringWithInteger:textView.text.length], [TFUtilsHelper formatStringWithInteger:_maxWordCount]];
|
||||
}
|
||||
|
||||
- (void)hideKeyboard
|
||||
{
|
||||
[[[UIApplication sharedApplication] keyWindow] endEditing:YES];
|
||||
}
|
||||
|
||||
@end
|
||||
Reference in New Issue
Block a user