学IOS不就,但是很荣欣的是很快就找到可工作,但是在工作中,会遇到很多不同的需求,在这里我也将做这个项目中遇到的问题在这里做一个梳理
在项目中很多时候直接拉空间来实现页面是不现实的,所以很多时候都是要 用代码动态添加
1、动态添加元素
(1)、添加一个按钮 和 按钮属性介绍
首先要知道按钮的集中风格:
// typedef enum {
06 | UIButtonTypeCustom = 0, 自定义风格 |
07 | UIButtonTypeRoundedRect, 圆角矩形 |
08 | UIButtonTypeDetailDisclosure, 蓝色小箭头按钮,主要做详细说明用 |
09 | UIButtonTypeInfoLight, 亮色感叹号 |
10 | UIButtonTypeInfoDark, 暗色感叹号 |
11 | UIButtonTypeContactAdd, 十字加号按钮 |
12 | } UIButtonType; |
/* forState: 这个参数的作用是定义按钮的文字或图片在何种状态下才会显现*/
1 | //以下是几种状态 |
2 | // enum { |
3 | // UIControlStateNormal = 0, 常规状态显现 |
4 | // UIControlStateHighlighted = 1 << 0, 高亮状态显现 |
5 | // UIControlStateDisabled = 1 << 1, 禁用的状态才会显现 |
6 | // UIControlStateSelected = 1 << 2, 选中状态 |
7 | // UIControlStateApplication = 0x00FF0000, 当应用程序标志时 |
8 | // UIControlStateReserved = 0xFF000000 为内部框架预留,可以不管他 |
9 | // }; |
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btn setTitle:@"点击" forState:UIControlStateNormal]; //正常状态下按钮显示的字
[btn setTitle:@"点击了" forState:UIControlStateHighlighted]; //按钮点击时显示的字
btn.enabled = false; //设置按钮是否可用
[btn setTitle:@"禁用状态" forState:UIControlStateDisabled]; //按钮不可用的时候,显示的字
// [btn setTitle:@"未知" forState:UIControlStateSelected]; //还没够明白
CGRect rect = CGRectMake(100, 100, 100, 40);
btn.frame = rect; //或者是 btn.frame = CGRectMake(200, 100, 100, 40);
[self.view addSubview:btn];
按钮还有很多其他的属性 比如:
默认情况下,当按钮高亮的情况下,图像的颜色会被画深一点,如果这下面的这个属性设置为no,那么可以去掉这个功能
btn.adjustsImageWhenHighlighted = NO;
默认情况下,当按钮禁用的时候,图像会被画得深一点,设置NO可以取消设置
btn.adjustsImageWhenDisabled = NO;
下面的这个属性设置为yes的状态下,按钮按下会发光*/
btn.showsTouchWhenHighlighted = YES; //在圆角按钮上实现了效果,但是在自定义按钮上没有实现,不知道什么问题
当然在定义按钮的时候,可以直接开辟空间来定义按钮,这个时候,按钮是默认UIButtonTypeCustom
风格
UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(100, 100, 100, 50)];
[btn setTitle:@"看不见" forState:UIControlStateNormal];
[self.view addSubview:btn];
在我们自定义风格按钮的时候,如果我们只有一张方形图,但是我们在代码中要实现按钮有一定的圆角,这个也是可以实现的,
需要注意的是:我们需要用到一个包 QuartzCore 在需要实现圆角自定义按钮的时候,需要先导入QuartzCore 这个包,然后在文件之前,声明
#import <QuartzCore/QuartzCore.h>
然后在按钮定义里面实现以下代码就可以了
UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(100, 100, 100, 50)];
// btn.frame = CGRectMake(100, 100, 100, 50);
[btn setImage:[UIImage imageNamed:@"按钮"] forState:UIControlStateNormal];
[btn setImage:[UIImage imageNamed:@"按钮2"] forState:UIControlStateHighlighted];
[btn.layer setMasksToBounds:YES]; //是都支持圆角
[btn.layer setCornerRadius:8.0f]; //圆角大小
[btn.layer setBorderWidth:1.0f]; //设置按钮外框大小
[btn.layer setBorderColor:[[UIColor whiteColor] CGColor]];
[self.view addSubview:btn];