首页 > 其他 > 详细

UIView Subclass

时间:2015-10-16 23:14:24      阅读:311      评论:0      收藏:0      [点我收藏+]

UIView Subclass

 

UILabel, 继承于UIView, 标签视图, 用于显示文字 

    1.创建视图标签, 并设置位置大小 

  UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(20, 100, 375 - 40, 100)];  

    //文本
    label.text = @"Hello world, fine thanks and you Hello world, fine thanks and you";
    //对齐方式, 左对齐
    label.textAlignment = NSTextAlignmentCenter;
    //文本颜色, 默认黑色
    label.textColor = [UIColor colorWithRed:0.400 green:0.400 blue:1.000 alpha:1.000];

字体(样式, 大小), 默认: 17号字, 系统样式

 UIFont, 字体类, 继承于NSObject

使用系统字体

 label.font = [UIFont systemFontOfSize:24]; 

自定义字体

UIFont *font2 = [UIFont fontWithName:@"Bangla Sangam MN" size:24];

显示所有字体样式的名称

 NSLog(@"%@", [UIFont familyNames]); 

行数, 默认是1, 0代表根据文字自动设置行数

label.numberOfLines = 0;

文字的阴影颜色

    label.shadowColor = [UIColor grayColor];

文字的阴影偏移

    label.shadowOffset = CGSizeMake(2, 1);

换行模式

    label.lineBreakMode = NSLineBreakByWordWrapping;

2.设置属性

    label.backgroundColor = [UIColor cyanColor];

3.添加到父视图

   [self.window addSubview:label];

4.释放

    [label release];

 UITextField, 单行文本输入框, 继承于UIControl

    cmd + k 模拟键盘显示

    UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(20, 240, 375 - 40, 40)];
    textField.backgroundColor = [UIColor colorWithWhite:0.800 alpha:1.000];

属性

//    占位符
    textField.placeholder = @"请输入你的密码";
    //文本
    textField.text = @"";
    //边框样式, 默认: none
    textField.borderStyle = UITextBorderStyleRoundedRect;
    //文字颜色
    textField.textColor = [UIColor magentaColor];
    //字体
    textField.font = [UIFont systemFontOfSize:26];
    //是否安全输入, 默认为: NO
    textField.secureTextEntry = NO;

 清除按钮的显示模式

    UITextFieldViewModeNever: 不显示

    UITextFieldViewModeWhileEditing: 编辑时显示

    UITextFieldViewModeWhileEditing: 不编辑时显示

    UITextFieldViewModeAlways: 有内容时一直显示

textField.clearButtonMode = UITextFieldViewModeWhileEditing;

重新开始编辑时, 是否清除内容

textField.clearsOnBeginEditing = YES;
    //键盘返回键的样式
    textField.returnKeyType = UIReturnKeyDone;
    //让appdelegate成为textField的代理
    textField.delegate = self;
    //键盘样式
    textField.keyboardType = UIKeyboardTypeDefault;
    [self.window addSubview:textField];
    [textField release];
//UITextFieldDelegate, 类名+代理(系统的协议命名是固定的)
@interface AppDelegate : UIResponder <UIApplicationDelegate, UITextFieldDelegate>

UIButton, 按钮类, 继承于UIControl, 可以接收用户的点击, 并实现某些功能

    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    button.frame = CGRectMake(100, 320, 375 - 200, 40);
    button.backgroundColor = [UIColor colorWithRed:0.400 green:1.000 blue:0.400 alpha:1.000];

button标题

   //正常状态
    [button setTitle:@"确认" forState:UIControlStateNormal];
    //高亮状态, 长按
    [button setTitle:@"登陆" forState:UIControlStateHighlighted];
    //不可用状态
    [button setTitle:@"无效" forState:UIControlStateDisabled];
    //选中状态
    [button setTitle:@"选中" forState:UIControlStateSelected];
    //是否可用, 默认YES
    button.enabled = YES;
    //是否选中
    button.selected = NO;
     //标题颜色
    [button setTitleColor:[UIColor colorWithRed:0.251 green:0.000 blue:0.502 alpha:1.000] forState:UIControlStateNormal];
    //标题文字大小, button是一个复合视图(由多个视图组成), 其中显示文字就是titleLable
    button.titleLabel.font = [UIFont systemFontOfSize:24];

 设置button图片

 UIImage, 图片类, 继承于NSObject

: png可以省略后缀, 其他格式必须写后缀

    [button setImage:[UIImage imageNamed:@"button"] forState:UIControlStateNormal];

设置背景图片

  [button setBackgroundImage:[UIImage imageNamed:@"button"] forState:UIControlStateNormal];

 点击button, 执行某个操作(方法)

    参数1: 方法的执行者

    参数2: 执行哪一个方法

    参数3: 什么时候执行方法

- (void)pressButton {
    self.window.backgroundColor = [UIColor colorWithRed:arc4random() % 266 / 255.0 green:arc4random() % 266 / 255.0 blue:arc4random() % 266 / 255.0 alpha:arc4random() % 266 / 255.0]; 
}
   [button addTarget:self action:@selector(pressButton) forControlEvents:UIControlEventTouchUpInside];
    [self.window addSubview:button];

   label = [[UILabel alloc] initWithFrame:CGRectMake(20, 60, 335, 40)];
    label.backgroundColor = [UIColor whiteColor];
//    label.tag = 102;
    [self.window addSubview:label];
    [label release];
    
    textField = [[UITextField alloc] initWithFrame:CGRectMake(20, 120, 335, 40)];
    textField.backgroundColor = [UIColor whiteColor];
    textField.placeholder = @"请输入内容";
//    textField.tag = 101;
    [self.window addSubview:textField];
    [textField release];
       
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    button.frame = CGRectMake(120, 180, 120, 40);
    button.backgroundColor = [UIColor blueColor];
    [button setTitle:@"OK" forState:UIControlStateNormal];
    [button addTarget:self action:@selector(submit) forControlEvents:UIControlEventTouchUpInside];
    [self.window addSubview:button];
- (void)submit {
    NSLog(@"hi");
    //1, UIView tag
    //父视图通过tag值, 找到某个子视图
//    UITextField *textField = (UITextField *)[self.window viewWithTag:101];
//    NSLog(@"%@", textField.text);
//    UILabel *label = (UILabel *)[self.window viewWithTag:102];
//    label.text = textField.text;
    
    //2. 扩大变量的作用域, 写成实例变量
    label.text = textField.text;
    
}
//实例变量
@interface AppDelegate () {
    UITextField *textField;
    UILabel *label;
}
#pragma mark - UITextFieldDelegate
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    NSLog(@"点击了return按钮");
    //让textField的键盘收回, 结束编辑
    [textField resignFirstResponder];
    return YES;
}

//textField是否允许编辑
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
    return YES;
}

- (void)textFieldDidBeginEditing:(UITextField *)textField {
    NSLog(@"已经开始编辑");
}
//textField是否允许结束编辑
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField {
    return YES;
}

- (void)textFieldDidEndEditing:(UITextField *)textField {
    NSLog(@"已经结束编辑");
}

//是否允许对当前的字符串进行修改
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    NSLog(@"location: %lu length: %lu  %@", range.location, range.length, string);
    if ([string isEqualToString:@"a"]) {
        return NO;
    }
    return YES;
}
//控制清除按钮是否有效
- (BOOL)textFieldShouldClear:(UITextField *)textField {
    return NO;
}

 

 

 

 

 

 

 

 

 

UIView Subclass

原文:http://www.cnblogs.com/OrangesChen/p/4886542.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!