XZ_iOS之使用textView实现占位文字
来源:互联网 发布:mysql if 编辑:程序博客网 时间:2024/06/05 05:27
众所周知,textField有占位文字,但是很多时候textfield并不能实现我们的需求,这时候就要用到textView了,但是textView又没有占位文字,所以,我今天就是使用textView实现有占位文字
XZTextView.h中
/** 占位文字 */
@property (nonatomic,strong) NSString *placeholder;
XZTextView.m中
#import "UIView+Extension.h"
@interface XZTextView ()
/**
* 占位文字Label
*/
@property (weak, nonatomic) UILabel *phLabel;
@end
@implementation XZTextView
- (UILabel *)phLabel
{
if (!_phLabel) {
UILabel *phLabel = [[UILabelalloc] init];
// 文字自动换行
phLabel.numberOfLines = 0;
phLabel.x = 4;
phLabel.y = 7;
[self addSubview:phLabel];
self.phLabel = phLabel;
}
return_phLabel;
}
- (instancetype)initWithFrame:(CGRect)frame
{
if (self = [superinitWithFrame:frame]) {
self.phLabel.textColor = [UIColorlightGrayColor];
// 添加监听器,监听自己的文字改变通知
[[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(textDidChange)name:UITextViewTextDidChangeNotificationobject:nil];
}
return self;
}
// 时刻监听文字键盘文字的变化,文字一旦改变便调用setNeedsDisplay方法
- (void)textDidChange
{
// 有文字就隐藏
self.phLabel.hidden =self.hasText;
}
- (void)layoutSubviews
{
[superlayoutSubviews];
// 确定label的宽度,高度由文字数量自动计算
CGSize size = CGSizeMake(self.width -2 * self.phLabel.x,MAXFLOAT);
// 根据文字的字体属性、文字的数量动态计算label的尺寸
self.phLabel.size = [self.placeholderboundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOriginattributes:@{NSFontAttributeName :self.font}context:nil].size;
}
// 占位文字
- (void)setPlaceholder:(NSString *)placeholder
{
_placeholder = placeholder;
self.phLabel.text = placeholder;
// 更新文字尺寸
[selfsetNeedsLayout];
}
// 字体
- (void)setFont:(UIFont *)font
{
[super setFont:font];
self.phLabel.font = font;
[selfsetNeedsLayout];
}
- (void)dealloc
{
[[NSNotificationCenterdefaultCenter] removeObserver:self];
}
@end
- XZ_iOS之使用textView实现占位文字
- XZ_iOS之textField占位字距离左侧10,改变占位文字颜色
- 自定义TextView,设置占位文字
- 猫猫学iOS 之微博项目实战(11)发送微博自定义TextView实现带占位文字
- AJ学IOS 之微博项目实战(11)发送微博自定义TextView实现带占位文字
- XZ_iOS之使用GCD实现发送验证码
- XZ_iOS之使用webView实现开机动画效果
- XZ_iOS之实现离线缓存
- XZ_iOS之pch的使用
- UITextView实现占位文字
- 如何实现在TextView使用占位符(placeholder)
- iOS之UITextView实现placeHolder占位文字的最佳方法
- XZ_iOS之block实现逆向传值
- XZ_iOS之自定义弹幕的实现
- iOS之UITextView 实现占位符占位文字的Ñ种方法
- XZ_iOS之使用iTunes安装ipa包
- XZ_iOS之Runtime使用运行时实现字典转模型和关联对象
- ios 自定义带占位文字(placeholder)的TextView
- 怎么运用ABBYY FineReader实现JPG到PDF的转换
- JQuery ajax设置Request Headers
- String="" 与new String()的区别
- 使用Python学习selenium测试工具-6:同步
- Android 6.0 - 动态权限管理的解决方案
- XZ_iOS之使用textView实现占位文字
- JavaScript 数组方法大全
- petalinux开发zynq问题笔记
- 三消核心代码
- AndroidStudio用GIT做版本管理时,.gitnore文件的配置相关
- 使用mob进行Android短信验证流程
- tableau自定义logo
- Activity加载显示,关联AMS WMS
- 1017. Queueing at Bank (25)