iOS textView placeholder

来源:互联网 发布:恶搞非诚勿扰灭灯软件 编辑:程序博客网 时间:2024/05/22 05:12

#import <UIKit/UIKit.h>


@interface CustomTextView : UITextView

@property (nonatomic,retain) NSString *placeholder; //内容

@property (nonatomic,retain) UIColor *placeholderColor;  //颜色

@end



#import "CustomTextView.h"

#define IOS_VERSION    [[[UIDevice currentDevice] systemVersion] floatValue]

@implementation CustomTextView


- (id)initWithFrame:(CGRect)frame

{

  self = [superinitWithFrame:frame];

  if (self) {

    

    [[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(textChanged:)

                                                 name:UITextViewTextDidChangeNotification

                                               object:nil];

    

    self.autoresizesSubviews =NO;

    self.placeholder =@"";

    self.placeholderColor =RGB(195,202, 213);

    

  }

  return self;

}


-(void)drawRect:(CGRect)rect

{

  //内容为空时才绘制placeholder

  if ([self.textisEqualToString:@""]) {

    CGRect placeholderRect;

    placeholderRect.origin.y =8;

    placeholderRect.size.height =CGRectGetHeight(self.frame)-8;

    if (IOS_VERSION >=7) {

      placeholderRect.origin.x =5;

      placeholderRect.size.width =CGRectGetWidth(self.frame)-5;

    } else {

      placeholderRect.origin.x =10;

      placeholderRect.size.width =CGRectGetWidth(self.frame)-10;

    }

    [self.placeholderColorset];

    [self.placeholderdrawInRect:placeholderRect

                        withFont:self.font

                   lineBreakMode:NSLineBreakByWordWrapping

                       alignment:NSTextAlignmentLeft];

  }

}

- (void)textChanged:(NSNotification *)not

{

  [selfsetNeedsDisplay];

}

- (void)setText:(NSString *)text

{

  [super setText:text];

  [selfsetNeedsDisplay];

}

@end



一句话调用

textView.placeholder=@"请输入订单取消理由";


0 0
原创粉丝点击