[关于UIView.UILabel.UIButton.UIImageView.UITextField等子控件布局森研究]

一. UIView

/* UIView 的创建 */
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(20, 20, 100, 30)];

/* 设置UIView背景颜色 */
view.backgroundColor = [UIColor cyanColor];

/* 使用取色器自定义RBG颜色的方法 */
view.backgroundColor = [UIColor colorWithRed:255 / 255 green:102 / 255 blue:255 / 255 alpha:1];//找到你想要的颜色RBG值 除255 放入相应位置 如图选择了一块粉色区域

选中一块粉色

参照RGB图表

/* 将UIView对象添加到父视图上 */
[self.view addSubview:view];
结果如下图


显示结果

/* 添加/删除子视图方法总览 */
[addSubview:]//添加子视图
[insertSubview: atIndex:]//在指定的index处插入子视图
[insertSubview: aboveSubview:]//在指定的视图上添加子视图
[insertSubview: belowSubview:]//在指定的视图下添加子视图
[bringSubviewToFront:]//把指定的子视图移动到最前面
[sendSubviewToBack:]//把指定的子视图移动到最后面
[exchangeSubviewAtIndex: withSubviewAtIndex:]//交换两个指定位置的子视图
removeFromSuperview//把子视图从父视图上移除

/* 关于UIView的属性 */
1.backgroundColor 背景颜色
2.frame 位置及尺寸 以父视图左上角为原点
3.center 中心点
4.hidden 布尔值 YES隐藏 No显示
5.alpha 透明度
6.superview 本视图的父视图
7.subviews 本视图的所有子视图 是一个数组
8.tag 标记
9.contentMode 内容显示模式 拉伸自适应
10.layer
11.bounds 位置及尺寸 以自己的左上角为原点 影响其子视图的位置布局

/* UIView对象的圆角设置 */
view.layer.masksToBounds = YES;
view.layer.cornerRadius = 5;//设置圆角半径
view.layer.borderColor = [[UIColor cyanColor] CGColor];//设置边框颜色
view.layer.borderWidth =3;//设置边框宽度
结果 如下图

显示结果

二.UILabel

/* UILabel的属性 */
1.text 文本内容
2.frame 位置大小
3.textColor 字的颜色
4.textAlignment 对齐方式
 (1)NSTextAlignmentLeft 左对齐
 (2)NSTextAlignmentCenter 居中
 (3)NSTextAlignmentRight 右对齐
5.numberOfLines 行数 
6.lineBreakMode 断行模式
 (1)NSLineBreakByWordWrapping //以空格为边界,保留单词
 (2)NSLineBreakByCharWrapping //保留整个字符
 (3)NSLineBreakByClipping //简单剪裁,到边界为止
 (4)NSLineBreakByTruncatingHead //按照"……文字"显示
 (5)NSLineBreakByTruncatingTail //按照"文字……文字"显示
 (6)NSLineBreakByTruncatingMiddle //按照"文字……"显示
7.layer 层级
8.font 字体大小
9.shadowColor 阴影颜色
10.shadowOffset 阴影偏移量 是CGSize 类型
11.alpha 透明度

/* UILabel的创建 */
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(20, 120, 100, 40)];
label.backgroundColor = [UIColor yellowColor];//背景颜色
label.text = @"你好帅";//添加文本内容
[self.view addSubview:label];//添加到父视图上
label.textColor = [UIColor blueColor];//字体颜色设置
label.textAlignment = 1;//对齐方式 居中
label.layer.masksToBounds = YES;
label.layer.cornerRadius = 5;//圆角半径
label.shadowColor = [UIColor redColor];//阴影颜色
label.shadowOffset = CGSizeMake(3, 3);//阴影偏移量
label.layer.borderWidth = 2;//边框宽度

结果 如下图



若我们这样设置

label.text = @"你说什么 哦豁.what 嘻嘻我怎么听不到";
label.numberOfLines = 0;
label.lineBreakMode = 2;
label.font = [UIFont systemFontOfSize:12];

就会变成下图 保留了完整的字符


三. UIButton

/* UIButton的属性 */
1.backgroundColor 背景颜色
2.frame 位置大小
3.titleLabel 标题
4.layer 层级
5.alpha 透明度

/* button初始化 */
//有2种方式
UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];// button上的字可以更改颜色
UIButton *button1 = [UIButton buttonWithType:UIButtonTypeCustom];//button上的字颜色为白色 且不能更改

外观控制属性
[setImage: forState:] 添加图片
[setBackgroundImage: forState:] 添加背景图片
[setTitle: forState:] 添加标题
[setTintColor:] 定义标题字体颜色
[setTitleShadowColor: forState:] 标题字体阴影颜色

在这里简单定义下属性
[button setTitle:@"注册" forState:UIControlStateNormal];
[button setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
[button1 setTitle:@"登录" forState:UIControlStateNormal];
如下图

当然 你可以把它设置的很漂亮
如 透明底色带边框的button


这里小编是这么写的
//注册

UIButton *buttonOfSignIn = [UIButton buttonWithType:UIButtonTypeSystem];
buttonOfSignIn.frame = CGRectMake(10, 460, 355, 40);
buttonOfSignIn.backgroundColor = [UIColor colorWithRed:0.18 green:0.8 blue:0.58 alpha:1];
[imageView addSubview:buttonOfSignIn];
[buttonOfSignIn setTitle:@"注册" forState:UIControlStateNormal];
[buttonOfSignIn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[buttonOfSignIn addTarget:self action:@selector(handleSignIn:) forControlEvents:UIControlEventTouchUpInside];
//返回登录
UIView *viewOfGetBack = [[UIView alloc] initWithFrame:CGRectMake(10, 530, 350, 40)];
viewOfGetBack.backgroundColor = [UIColor colorWithRed:0.18 green:0.8 blue:0.58 alpha:1];
viewOfGetBack.alpha = 0.1;
[imageView addSubview:viewOfGetBack];
UIButton *buttonOfGetBack = [UIButton buttonWithType:UIButtonTypeSystem];
buttonOfGetBack.frame = CGRectMake(10, 530, 350, 40);
[buttonOfGetBack setTitle:@"返回登录" forState:UIControlStateNormal];buttonOfGetBack.layer.masksToBounds = YES;
buttonOfGetBack.layer.borderWidth = 1;
buttonOfGetBack.layer.borderColor = [[UIColor colorWithRed:0.18 green:0.8 blue:0.58 alpha:1] CGColor];
buttonOfGetBack.titleLabel.font = [UIFont boldSystemFontOfSize:18];
[buttonOfGetBack setTitleColor:[UIColor colorWithRed:0.2 green:0.8 blue:0.58 alpha:1] forState:UIControlStateNormal];
[buttonOfGetBack addTarget:self action:@selector(handleGetBack:) forControlEvents:UIControlEventTouchUpInside];
[imageView addSubview:buttonOfGetBack];

四.UIImageView.UIImage
UIImageView是用于显示图片的类 UIImage是图片类
使用ImageView设置动态图

//初始化图片数组
NSMutableArray *array = [NSMutableArray array];
for (int i = 1; i < 19; i++) {
    NSString *flowerName = [NSString stringWithFormat:@"flower%d.tiff", i];
    [UIImage imageNamed:flowerName];
    UIImage *flowerImage = [UIImage imageNamed:flowerName];
    [array addObject:flowerImage];//将图片用for循环放入数组中
}
imageView.animationImages = array;设置动态图片数组
imageView.animationDuration = 0.5;设置播放一组动态图片的时间
imageView.animationRepeatCount = 0;设置重复次数 0为无限重复
[_window addSubview:imageView];
[imageView startAnimating];开始动画

这样向日葵就会左右摇动啦QVQ

//UIImage图片防止渲染的方法:
[UIImage imageNamed:@"1"] imageWithRenderingModem:UIImageRenderingModeAlwaysOriginall];

五.UITextField
UITextField 输入框 是控制文本输入和显示的控件

textfield属性:
1.text 文本内容
2.textColor 文本字颜色
3.textAlignment 对齐方式
4.font 字大小
5.frame 位置大小
6.placeholder 占位符
7.leftView 左视图
8.rightView 右视图
9.borderStyle 边框风格
  (1)UITextBorderStyleNone默认无                             
  (2)UITextBorderStyleRoundedRect圆角   
  (3)UITextBorderStyleLine边缘线  
  (4)UITextBorderStyleBezel贝塞尔
10.leftViewMode 左视图显示模式
11.rightViewMode 右视图显示模式
12.clearButtonMode 清除按钮模式
13.inputAccessoryView 输入视图上方的辅助视图
14.inputView 自定义输入键盘
15.returnKeyType 键盘右下角return 按键类型
16.keyboardType 弹出的键盘类型
17.secureTextEntry 是否密文输入

//点击return 回收键盘
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField canResignFirstResponder];//
    [textField endEditing:YES];
    return YES;
}

//设置placeholder的字体颜色
textOfUser.placeholder = @"请输入已验证手机号码或邮箱";
NSMutableDictionary *dict = [NSMutableDictionary dictionary];//新建可变字典
dict[NSForegroundColorAttributeName] = [UIColor lightGrayColor];//设置颜色属性
NSAttributedString *attribute = [[NSAttributedString alloc] initWithString:textOfUser.placeholder attributes:dict];
[textOfUser setAttributedPlaceholder:attribute];

默认占位符文字是黑色的 这里改成了灰色~


UITextField 协议
签订协议后 可以在其声明周期中进行代码编写
生命周期:
//开始编辑前 判断能否编辑

  • (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
    {
    return YES;
    }
    已经开始编辑时
  • (void)textFieldDidBeginEditing:(UITextField *)textField
    {
    }
    判断是否结束编辑
  • (BOOL)textFieldShouldEndEditing:(UITextField *)textField
    {
    return YES;
    }
    点击return回收键盘
  • (BOOL)textFieldShouldReturn:(UITextField *)textField
    {
    [textField endEditing:YES];
    return YES;
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容