zoukankan      html  css  js  c++  java
  • UI自定义视图

    将label和textField写成一个view

    新建一个UIView子类

     1 #import <UIKit/UIKit.h>
     2 
     3 @interface LTView : UIView
     4 {
     5     //  写在实例变量里面外界不能访问
     6     UILabel *_label;           //  标签
     7     UITextField *_textField;   //  输入框
     8 }
     9 //  外界可访问
    10 @property (nonatomic, copy) NSString *labelText;  //  标签的文字
    11 @property (nonatomic, retain) UIColor *lableTextColor;
    12 @property (nonatomic, copy) NSString *textFieldText;
    13 @property (nonatomic, assign, getter = isSecureTextEntry) BOOL secureTextEntry;  //  设置是否以圆点方式显示
    14 @property (nonatomic, assign) id<UITextFieldDelegate> delegate;
    15 
    16 #pragma mark 初始化方法
    17 - (instancetype)initWithFrame:(CGRect)frame withLabelText:(NSString *)text;
    18 
    19 @end

    实现部分

     1 #import "LTView.h"
     2 
     3 @implementation LTView
     4 
     5 - (void)dealloc
     6 {
     7     [_label release];
     8     [_textField release];
     9     
    10     [super dealloc];
    11 }
    12 
    13 #pragma mark 重写initWithFrame:
    14 - (id)initWithFrame:(CGRect)frame
    15 {
    16     self = [super initWithFrame:frame];
    17     if (self) {
    18 //        self.backgroundColor = [UIColor cyanColor];
    19         
    20         //  添加Label
    21         _label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, frame.size.width / 3, frame.size.height)];
    22 //        _label.backgroundColor = [UIColor grayColor];
    23         [self addSubview:_label];
    24         
    25         //  添加TextField
    26         _textField = [[UITextField alloc] initWithFrame:CGRectMake(frame.size.width / 3, 0, frame.size.width / 3 * 2, frame.size.height)];
    27         _textField.borderStyle = UITextBorderStyleRoundedRect;
    28         [self addSubview:_textField];
    29     }
    30     return self;
    31 }
    32 
    33 #pragma mark 重写setter和getter方法
    34 - (void)setLabelText:(NSString *)labelText
    35 {
    36     _label.text = labelText;
    37 }
    38 - (NSString *)labelText
    39 {
    40     return _label.text;
    41 }
    42 
    43 - (void)setLableTextColor:(UIColor *)lableTextColor
    44 {
    45     _label.textColor = lableTextColor;
    46 }
    47 
    48 - (void)setTextFieldText:(NSString *)textFieldText
    49 {
    50     _textField.text = textFieldText;
    51 }
    52 - (NSString *)textFieldText
    53 {
    54     return _textField.text;
    55 }
    56 
    57 - (void)setSecureTextEntry:(BOOL)secureTextEntry
    58 {
    59     _textField.secureTextEntry = secureTextEntry;
    60 }
    61 - (BOOL)isSecureTextEntry
    62 {
    63     return _textField.secureTextEntry;
    64 }
    65 
    66 - (void)setDelegate:(id<UITextFieldDelegate>)delegate
    67 {
    68     _textField.delegate = delegate;
    69 }
    70 
    71 #pragma mark 实现初始化方法
    72 - (instancetype)initWithFrame:(CGRect)frame withLabelText:(NSString *)text
    73 {
    74     self = [self initWithFrame:frame];
    75     if (self) {
    76         _label.text = text;
    77     }
    78     return self;
    79 }
    80 
    81 @end

    AppDelegate.m中

     1 LTView *view = [[LTView alloc] initWithFrame:CGRectMake(30, 50, 200, 30) withLabelText:@"用户名"];
     2     view.delegate = self;
     3 //    view.SecureTextEntry = YES;
     4     [self.window addSubview:view];
     5     [view release];
     6     
     7     LTView *view2 = [[LTView alloc] initWithFrame:CGRectMake(30, 100, 200, 30) withLabelText:@"密码"];
     8     view2.delegate = self;
     9     view2.SecureTextEntry = YES;
    10     [self.window addSubview:view2];
    11     [view2 release];
  • 相关阅读:
    java基础篇2之枚举
    java基础篇1之可变参数,增强for循环,自动装箱
    计算机常用英语
    ThreadLocal
    Tomcat 配置连接池
    数据库连接池
    装饰者模式
    JavaWeb 之事务
    MySql 批处理
    如何将大数据保存到 MySql 数据库
  • 原文地址:https://www.cnblogs.com/Raven930/p/3727434.html
Copyright © 2011-2022 走看看