UI基础控件之UITextField

1.UITextField初始化

 UITextField *userNameTextField = [[UITextFieldalloc] initWithFrame:CGRectMake

(100, 100, 190, 30)];

 userNameTextField.borderStyle =UITextBorderStyleRoundedRect;

 userNameTextField.placeholder = @"手机号/邮箱";  [containerView addSubview:userNameTextField];

 [userNameTextField release];


2.UITextField属性

 2.1文本属性

  text :要显示的文本内容

  textColor:文本内容的颜色

  textAlignment:文本的对齐方式水平方式  textField.textAlignment = NSTextAlignmentLeft

  font: 文本字体                                                  textField.font = [UIFont fontWithName:@“Helvetica-Bold” size:20];

  placeHolder:占位符无文字输入时的提示语    textField.placeholder = @“请输入用户名

2.2外观控制

  borderStyle:边框样式枚举值               textField.borderStyle = UITextBorderStyleLine

  clearButtonMode:清除按钮(右侧)          textField.clearButtonMode =UITextFieldViewModeAlways; //总是       显示清除按钮(小叉叉按钮)

  leftView:输入框左视图(UIView类型)        textField.leftView = leftView;

  leftViewMode:左视图显示的mo'shi        textField.leftViewMode = UITextFieldViewModeAlways

 类似的还有右视图:rightView

2.3输入控制

  enabled:BOOL值是否允许输入                                       textField.enabled = NO,默认为YES,可输入

  clearsOnBeginEditing:是否开始输入时清空输入框          textField.clearsOnBeginEditing = YES;

  secureTextEntry:是否文字以圆点格式现实用于密码框      textField.secureTextEntry = YES;

  keyboardType:键盘弹出类型枚举值        textField.keyboardType = UIKeyboardNmuberPad;数字键盘              returnKeyType:键盘右下角return按钮类型     textField.returnKeyType = UIReturnKeyNext改为下一行

  inputView:自定义输入视图:UIView类型默认是键盘          textField.inputView = myInputView;

  inputAccessoryView输入视图上方的辅助视图     textField. inputAccessoryView = myAccessoryView;


3.UITextField键盘回收方法

3.1 点击键盘return按钮实现键盘回收的步骤:

  1AppDelegate.h文件接受UITextFieldDelegate协议

  2AppDelegate作为UITextFielddelegate

  3AppDelegate.m文件实现 textFieldShouldReturn:方法

示例

(1)AppDelegate.h

   @interface AppDelegate : UIResponder <UIApplicationDelegate,UITextFieldDelegate>

(2)AppDelegate.m

 textField.delegate = self;(self为AppDelegate,词句很关键)

(3)AppDelegate.m

 - (BOOL)textFieldShouldReturn:(UITextField *)textField

 {

  [textField resignFirstResponder];

  return YES;

 }


3.2点击return跳到下一行(确定,搜索等)


4.**自定义视图控件(重点) ** (工程见附件)

自定义UILabel 与UITextField整合控件LTView

LTView.h文件:

@interface LTView : UIView
{
    UILabel     *_label;        //左边的label
    UITextField *_textField;    //右边的textField
}
@property (nonatomic, assign) id <UITextFieldDelegate> delegate;
@property (nonatomic, assign) CGFloat spacing;
@property (nonatomic, retain) UILabel *label;
@property (nonatomic, retain) UITextField *textField;
/**
 *  指定初始化方法
 *
 *  @param frame       整个控件的frame
 *  @param labelText   左边label的文字
 *  @param text        右边输入框的文字
 *  @param placeHolder 右边输入框的占位符
 *
 *  @return 返回一个LTView对象
 */
- (id)initWithFrame:(CGRect)frame labelText:(NSString *)labelText text:(NSString *)text placeHolder:(NSString *)placeHolder;
- (id)initWithFrame:(CGRect)frame labelText:(NSString *)labelText placeHolder:(NSString *)placeHolder;
//设置_label的文字
- (void)setLabelText:(NSString *)text;
//获取_label的文字
- (NSString *)labelText;
//设置_textField文字
- (void)setText:(NSString *)text;
//或者去_textField文字
- (NSString *)text;
@end

LTView.m文件:

#import "LTView.h"
@implementation LTView
@synthesize spacing = _spacing;
@synthesize delegate = _delegate;
- (void)dealloc
{
    [_label release];
    [_textField release];
    [super dealloc];
}
- (void)setDelegate:(id<UITextFieldDelegate>)delegate
{
    _delegate = delegate;
    _textField.delegate = _delegate;
}
- (id <UITextFieldDelegate>)delegate
{
    return _delegate;
}
- (id)initWithFrame:(CGRect)frame labelText:(NSString *)labelText text:(NSString *)text placeHolder:(NSString *)placeHolder
{
    self = [super initWithFrame:frame];
    if (self) {
        //整个控件的宽高。
        CGFloat width = frame.size.width;
        CGFloat height = frame.size.height;
                                                                                                   
        _label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, width/3, height)];
        _label.backgroundColor = [UIColor clearColor];
        _label.textAlignment = NSTextAlignmentRight;
        [self addSubview:_label];
        [_label release];
                                                                                                   
        _textField = [[UITextField alloc] initWithFrame:CGRectMake(width/3 + _spacing, 0, width-width/3-_spacing, height)];
        _textField.borderStyle = UITextBorderStyleRoundedRect;
        [self addSubview:_textField];
        [_textField release];
        [self setLabelText:labelText];
                                                                                                   
                                                                                                   
        [self setText:text];
        _textField.placeholder =placeHolder;
    }
    return self;
}
- (id)initWithFrame:(CGRect)frame labelText:(NSString *)labelText placeHolder:(NSString *)placeHolder
{
    return [self initWithFrame:frame labelText:labelText text:nil placeHolder:placeHolder];
}
- (id)initWithFrame:(CGRect)frame
{
    return [self initWithFrame:frame labelText:nil text:nil placeHolder:nil];
}
- (void)setSpacing:(CGFloat)spacing
{
    _spacing = spacing;
    _textField.frame = CGRectMake(_label.frame.size.width + _spacing, 0, self.frame.size.width - _label.frame.size.width - _spacing, self.frame.size.height);
}
- (CGFloat)spacing
{
    return _spacing;
}
//设置_label的文字
- (void)setLabelText:(NSString *)text
{
    _label.text = text;
}
//获取_label的文字
- (NSString *)labelText
{
    return _label.text;
}
//设置_textField文字
- (void)setText:(NSString *)text
{
    _textField.text = text;
}
//或者去_textField文字
- (NSString *)text
{
    return _textField.text;
}


AppDelegate.m文件


#import "AppDelegate.h"
#import "LTView.h"
@implementation AppDelegate
- (void)dealloc
{
    [_window release];
    [super dealloc];
}
//键盘回收
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField resignFirstResponder];
    return YES;
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];  
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];
                                                                                     
    CGFloat y = 50;
    NSArray *labelTitles = @[@"用户名:",@"密码:",@"确认密码:",@"邮箱:",@"手机号:"];
    NSArray *placeHolders = @[@"数字、字母",@"6位数字",@"6位数字",@"Email",@"11位"];
    for (int i = 0; i < 5; i++) {
        LTView *ltView = [[LTView alloc] initWithFrame:CGRectMake(0, y, 320, 30) labelText:[labelTitles objectAtIndex:i] placeHolder:[placeHolders objectAtIndex:i]];
        ltView.delegate = self;
        [self.window addSubview:ltView];
        y += 50;
        [ltView release];
    }
    [self.window makeKeyAndVisible];
    return YES;
}




enabled


你可能感兴趣的:(UI基本控件)