iOS 애플 리 케 이 션 개발 에서 UITextField 를 placeholder 속성 으로 구현 하 는 방법
찌 질 한 방법
어떻게 UITextView 에 도 placeholder 기능 이 있 게 합 니까?오늘 여러분 께 비교적 찌 질 한 방법 을 나 눠 드 리 겠 습 니 다.생각 은 대략 이렇다.
1.UITextView 만 들 기:
UITextView *textViewPlaceholder = [[UITextView alloc] initWithFrame:CGRectMake(20, 70, SCREEN.width - 40, 100)];
textViewPlaceholder.backgroundColor = [UIColor whiteColor];
textViewPlaceholder.text = @"jb51.net";
textViewPlaceholder.textColor = [UIColor grayColor];
textViewPlaceholder.delegate = self;
[self.view addSubview:textViewPlaceholder];
UITextView 를 초기 화하 고 UITextView 의 text 에 값 을 부여 하 며 UITextView 의 textColor 속성 을 회색 으로 설정 하여 placeholder 처럼 보이 게 합 니 다.UITextView 의 에이 전 트 를 설정 하 는 것 을 잊 지 마 세 요.왜냐하면 뒤에 UITextView 의 두 개의 에이 전 트 를 사용 해 야 하기 때 문 입 니 다.
2.편집 을 시작 하 는 프 록 시 방법:
- (void)textViewDidBeginEditing:(UITextView *)textView {
if ([textView.text isEqualToString:@"jb51.net"]) {
textView.text = @"";
textView.textColor = [UIColor blackColor];
}
}
편집 을 시작 하 는 프 록 시 방법 에서 UITextView 의 text 값 이 placeholder 라면 text 를 비우 고 textColor 를 실제 내용 색상 으로 설정 하여 검은색 이 라 고 가정 합 니 다.3.편집 을 끝 내 는 프 록 시 방법:
- (void)textViewDidEndEditing:(UITextView *)textView {
if (textView.text.length<1) {
textView.text = @"jb51.net";
textView.textColor = [UIColor grayColor];
}
}
편집 을 끝 내 는 프 록 시 방법 에서 UITextView 의 text 값 이 비어 있 으 면 설정 할 place holder 를 UITextView 의 text 에 할당 하고 textColor 속성 을 회색 으로 설정 해 야 합 니 다.4.퍼 트 제스처 추가
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGesture:)];
tapGesture.numberOfTapsRequired = 1; //
tapGesture.numberOfTouchesRequired = 1; //
[self.view addGestureRecognizer:tapGesture];
//
-(void)tapGesture:(UITapGestureRecognizer *)sender
{
[self.view endEditing:YES];
}
이로써 찌 질 하 게 플레이 스 홀 더 기능 을 실현 했다.나 는 테스트 를 편리 하 게 하기 위해 손짓 을 하나 더 했다.키보드 로 사라 지 는 역할 을 합 니 다.편집 이 끝 날 때 placeholder 가 표시 되 는 지 테스트 할 수 있 습 니 다.데모 주소:iOSStrongDemo
일반적인 방법
다음은 일반적인 방법 을 살 펴 보 겠 습 니 다.하하~그럼 이번 에는 UITextView 를 간단하게 포장 하 겠 습 니 다.일단 GGplaceholder TextView 라 고 이름 을 지 었 는데 GG 접 두 사 는 좀 제멋대로 보이 네요.
GGplaceholder TextView 프로필:
GGplaceholder TextView 도 text 에 대한 조작 입 니 다.구체 적 인 논 리 는 다음 과 같 습 니 다.
UITextView 를 계승 하고 place holder 속성 을 설정 합 니 다.
등록 시작 편집 및 종료 알림,그리고 text 에 해당 하 는 동작 을 합 니 다.
UIApplication WillTerminateNotification 알림 을 통 해 앱 종료 시 알림 을 제거 합 니 다.
나 는 GGplaceholder TextView 를 아래 에 썼 다.그러나 위 챗 에서 코드 를 보 는 것 은 불편 합 니 다.저 는 이미 코드 push 를 iOS StrongDemo 로 보 냈 습 니 다.다운로드 하 셔 도 됩 니 다.
GGPlaceholderTextView.h
#import <UIKit/UIKit.h>
@interface GGPlaceholderTextView : UITextView
@property(nonatomic, strong) NSString *placeholder;
@end
UITextField 와 유사 한 placeholder 속성 을 정의 합 니 다.
GGPlaceholderTextView.m
#import "GGPlaceholderTextView.h"
@implementation GGPlaceholderTextView
- (id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
[self addObserver];
}
return self;
}
- (id)init {
if (self = [super init]) {
[self addObserver];
}
return self;
}
- (void)setPlaceholder:(NSString *)placeholder
{
_placeholder = placeholder;
self.text = placeholder;
self.textColor = [UIColor grayColor];
}
-(void)addObserver
{
//
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didBeginEditing:) name:UITextViewTextDidBeginEditingNotification object:self];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didEndEditing:) name:UITextViewTextDidEndEditingNotification object:self];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(terminate:) name:UIApplicationWillTerminateNotification object:[UIApplication sharedApplication]];
}
- (void)terminate:(NSNotification *)notification {
//
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
- (void)didBeginEditing:(NSNotification *)notification {
if ([self.text isEqualToString:self.placeholder]) {
self.text = @"";
self.textColor = [UIColor blackColor];
}
}
- (void)didEndEditing:(NSNotification *)notification {
if (self.text.length<1) {
self.text = self.placeholder;
self.textColor = [UIColor grayColor];
}
}
@end
이상 은 GGplaceholder TextView 의 실현 에 관 한 것 입 니 다.비슷 한 수요 가 있 으 면 직접 가 져 가서 사용 하 세 요!구체 적 인 용법 은 아래 를 보 세 요.실천:
GGPlaceholderTextView *textView = [[GGPlaceholderTextView alloc] initWithFrame:CGRectMake(0, 64, SCREEN.width , 200)];
textView.backgroundColor = [UIColor whiteColor];
textView.placeholder = @"jb51.net";
[self.view addSubview:textView];
봉 인 된 GGplaceholder TextView 를 사용 하면 UITextField 와 매우 비슷 하지 않 습 니까?물론 제 가 포장 한 것 은 비교적 간단 합 니 다.github 에 도 placeholder 속성 을 가 진 UITextView 를 포장 하 는 친구 들 이 있 습 니 다.예 를 들 어 TextView Place holder.관심 있 는 동 화 는 한번 신어 보 세 요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
View의 레이아웃 방법을 AutoLayout에서 따뜻한 손 계산으로 하면 성능이 9.26배로 된 이야기이 기사는 의 15 일째 기사입니다. 어제는 에서 이었습니다. 손 계산을 권하는 의도는 없고, 특수한 상황하에서 계측한 내용입니다 화면 높이의 10 배 정도의 contentView가있는 UIScrollView 레이아...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.