01-UITExtView 자리 표시자
1. 문제 해결
모두가 알다시피 UITExtField는 하나의placeholder 속성이 있어 자리를 차지하는 문자나 힌트의 역할을 하지만 UITExtView는 이런 속성이 없다. 본고는 이 문제를 해결하기 위한 것이다.
2. RWTextView 패키지
RWTextView.h
#import
@interface RWTextView : UIView
/**
* UITextView View
*/
+ (instancetype)textView;
/**
*
*/
@property (nonatomic, copy) NSString *placeholder;
/**
*
*/
@property (nonatomic, assign) CGFloat placeholderFout;
/**
*
*/
@property (nonatomic, strong) UIColor *placeholderTitleColor;
@end
RWTextView.m
#import "RWTextView.h"
@interface RWTextView ()
/**
*
*/
@property (nonatomic, strong) UILabel *placeHolderLabel;
/**
* UITextView
*/
@property (nonatomic, strong) UITextView *textView;
@end
@implementation RWTextView
/**
* UITextView View
*/
+ (instancetype)textView {
return [[self alloc] init];
}
/**
*
*/
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
/** 1、 */
UILabel *placeHolderLabel = [[UILabel alloc] init];
self.placeHolderLabel = placeHolderLabel;
self.placeHolderLabel.textColor = [UIColor lightGrayColor];
[self addSubview:placeHolderLabel];
/** 2、 UItextView */
UITextView *textView = [[UITextView alloc] init];
textView.delegate = self;
textView.backgroundColor = [UIColor clearColor];
textView.backgroundColor = [UIColor brownColor];
textView.alpha = 0.3;
textView.tintColor = [UIColor yellowColor];
self.textView = textView;
[self addSubview:textView];
}
return self;
}
/** */
- (void)layoutSubviews {
[super layoutSubviews];
self.placeHolderLabel.frame = CGRectMake(5, 0, self.bounds.size.width, 30);
self.textView.frame = self.bounds;
}
/** */
- (void)setPlaceholder:(NSString *)placeholder {
_placeholder = placeholder;
self.placeHolderLabel.text = self.placeholder;
}
/** */
- (void)setPlaceholderFout:(CGFloat)placeholderFout {
_placeholderFout = placeholderFout;
self.placeHolderLabel.font = [UIFont systemFontOfSize:placeholderFout];
}
/** */
- (void)setPlaceholderTitleColor:(UIColor *)placeholderTitleColor {
_placeholderTitleColor = placeholderTitleColor;
self.placeHolderLabel.textColor = placeholderTitleColor;
}
#pragma mark - UITextViewDelegate
#pragma mark - textView
- (void)textViewDidChange:(UITextView *)textView {
if (!textView.text.length) {
//
self.placeHolderLabel.hidden = NO;
} else {
//
self.placeHolderLabel.hidden = YES;
}
}
3. 완전한 호출 봉인 대상 #import "ViewController.h"
#import "RWTextView.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//1、 textView
RWTextView *textView = [RWTextView textView];
textView.placeholder = @"textView placeholder";
textView.frame = CGRectMake(100, 100, 200, 100);
textView.placeholderTitleColor = [UIColor lightGrayColor];
textView.placeholderFout = 14;
textView.backgroundColor = [UIColor whiteColor];
[self.view addSubview:textView];
}
@end
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
RWTextView.h
#import
@interface RWTextView : UIView
/**
* UITextView View
*/
+ (instancetype)textView;
/**
*
*/
@property (nonatomic, copy) NSString *placeholder;
/**
*
*/
@property (nonatomic, assign) CGFloat placeholderFout;
/**
*
*/
@property (nonatomic, strong) UIColor *placeholderTitleColor;
@end
RWTextView.m
#import "RWTextView.h"
@interface RWTextView ()
/**
*
*/
@property (nonatomic, strong) UILabel *placeHolderLabel;
/**
* UITextView
*/
@property (nonatomic, strong) UITextView *textView;
@end
@implementation RWTextView
/**
* UITextView View
*/
+ (instancetype)textView {
return [[self alloc] init];
}
/**
*
*/
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
/** 1、 */
UILabel *placeHolderLabel = [[UILabel alloc] init];
self.placeHolderLabel = placeHolderLabel;
self.placeHolderLabel.textColor = [UIColor lightGrayColor];
[self addSubview:placeHolderLabel];
/** 2、 UItextView */
UITextView *textView = [[UITextView alloc] init];
textView.delegate = self;
textView.backgroundColor = [UIColor clearColor];
textView.backgroundColor = [UIColor brownColor];
textView.alpha = 0.3;
textView.tintColor = [UIColor yellowColor];
self.textView = textView;
[self addSubview:textView];
}
return self;
}
/** */
- (void)layoutSubviews {
[super layoutSubviews];
self.placeHolderLabel.frame = CGRectMake(5, 0, self.bounds.size.width, 30);
self.textView.frame = self.bounds;
}
/** */
- (void)setPlaceholder:(NSString *)placeholder {
_placeholder = placeholder;
self.placeHolderLabel.text = self.placeholder;
}
/** */
- (void)setPlaceholderFout:(CGFloat)placeholderFout {
_placeholderFout = placeholderFout;
self.placeHolderLabel.font = [UIFont systemFontOfSize:placeholderFout];
}
/** */
- (void)setPlaceholderTitleColor:(UIColor *)placeholderTitleColor {
_placeholderTitleColor = placeholderTitleColor;
self.placeHolderLabel.textColor = placeholderTitleColor;
}
#pragma mark - UITextViewDelegate
#pragma mark - textView
- (void)textViewDidChange:(UITextView *)textView {
if (!textView.text.length) {
//
self.placeHolderLabel.hidden = NO;
} else {
//
self.placeHolderLabel.hidden = YES;
}
}
3. 완전한 호출 봉인 대상 #import "ViewController.h"
#import "RWTextView.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//1、 textView
RWTextView *textView = [RWTextView textView];
textView.placeholder = @"textView placeholder";
textView.frame = CGRectMake(100, 100, 200, 100);
textView.placeholderTitleColor = [UIColor lightGrayColor];
textView.placeholderFout = 14;
textView.backgroundColor = [UIColor whiteColor];
[self.view addSubview:textView];
}
@end
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
#import "ViewController.h"
#import "RWTextView.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//1、 textView
RWTextView *textView = [RWTextView textView];
textView.placeholder = @"textView placeholder";
textView.frame = CGRectMake(100, 100, 200, 100);
textView.placeholderTitleColor = [UIColor lightGrayColor];
textView.placeholderFout = 14;
textView.backgroundColor = [UIColor whiteColor];
[self.view addSubview:textView];
}
@end
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.