美文网首页
UITextField 和 UITextView

UITextField 和 UITextView

作者: 流沙3333 | 来源:发表于2017-03-02 17:29 被阅读13次

/**

UITextField:

1.文字永远是一行,不能显示多行文字

2.有placehoder属性设置占位文字

3.继承自UIControl

4.监听行为

1>设置代理

2> addTarget:action:forControlEvents:

3>通知:UITextFieldTextDidChangeNotification

UITextView:

1.能显示任意行文字

2.不能设置占位文字

3.继承自UIScollView

4.监听行为

1>设置代理

2>通知:UITextViewTextDidChangeNotification

*/

当需要有占位文字并可以多行显示时,可以自定义UITextView,继承自UITextView,让后向其中添加一个UILabel即可,或者重写drawRect:方法:

- (void)drawRect:(CGRect)rect

{

//[HWRandomColor set];

//UIRectFill(CGRectMake(20, 20, 30, 30));

//如果有输入文字,就直接返回,不画占位文字

if(self.hasText)  return;

//文字属性

NSMutableDictionary*  attrs = [NSMutableDictionarydictionary];

attrs[NSFontAttributeName] = self.font;

attrs[NSForegroundColorAttributeName] = self.placeholderColor?self.placeholderColor:[UIColorgrayColor];

//画文字

//[self.placeholder drawAtPoint:CGPointMake(5, 8) withAttributes:attrs];

CGFloatx =5;

CGFloat  w = rect.size.width-2* x;

CGFloat  y =8;

CGFloat  h = rect.size.height-2* y;

CGRect  placeholderRect =CGRectMake(x, y, w, h);

[self.placeholder  drawInRect:placeholderRect  withAttributes:attrs];

}

相关文章

网友评论

      本文标题:UITextField 和 UITextView

      本文链接:https://www.haomeiwen.com/subject/ctjkgttx.html