您的位置:首页 > 产品设计 > UI/UE

UIButton 解析

2015-12-05 21:56 471 查看

IOS之按钮控件--Button全解析及使用

转载自:forget

IOS开发中伴随我们始终的 最常用的几个空间之一 -- UIButton 按钮,对于button今天在此做一些浅析,并介绍下主流用法以及常见问题解决办法.

首先是继承问题,UIButton继承于UIControl,而UIControl继承于UIView.

那么UIButton自然继承了UIView的属性.比如frame,layer等

至于UIButton的创建

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

button.backgroundColor = [UIColor clearColor];

button.frame = CGRectMake(90, 90, 51, 24);

// 内存: 不需要释放 因为是便利构造器

[button setTitle:@"请点击" forState:UIControlStateNormal]; // 正常状态

[button setTitle:@"点击中" forState:UIControlStateHighlighted]; // 高亮状态

[button setTitle:@"已点击" forState:UIControlStateSelected];

button.selected = NO;

self.isSelected = 0;

[button setTitleColor:[UIColor clearColor] forState:UIControlStateNormal];

[button setTitleColor:[UIColor yellowColor] forState:UIControlStateSelected];

// 按钮字体大小

button.titleLabel.font = [UIFont systemFontOfSize:30];

// 设置前景图片 (当button frame改变的时候 图片不变)

[button setImage:[UIImage imageNamed:@"BtnOff@2x.png"] forState:UIControlStateNormal];

// 禁止按钮按下颜色变深效果

button.adjustsImageWhenHighlighted = NO;

[button setImage:[UIImage imageNamed:@"IconAdd.png"] forState:UIControlStateHighlighted];

// 设置背景图片 (当button frame改变的时候 图片不变)

// 创建一个UIImage对象, 图片对象

[button setBackgroundImage:[UIImage imageNamed:@"FrendAdd.png"] forState:UIControlStateNormal]; // 正常

[button setBackgroundImage:[UIImage imageNamed:@"IconAdd.png"] forState:UIControlStateHighlighted]; // 高亮

// button最核心的方法

// 1.target 目标 就是button指定谁去执行方法

// 2.action 方法 就是执行什么

// 3.evunts 就是点击按钮时的状态

// 4.UIControlEventTouchUpInside 当手离开触发

[button addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];

[self.window addSubview:button];

对于在button上加图片有2种方式

第一种:setBackGroudImage:图片被拉伸

第二种:setImage: 图片保持原大小

注意设置图片时可能会出现渲染问题 此时的解决办法

// 处理图片渲染问题

UIImage *setImage = [UIImage imageNamed:@"setImage"];

UIImage *newSetImage = [setImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

给button设置成圆形

// 设置button的圆角半径,这样按钮就变成了园的

button.layer.cornerRadius = 50;

// 将button上的图片一样变成圆形

[button.layer masksToBounds];

// 添加边框

button.layer.borderWidth = 3;

// 边框颜色 注意要加.CGColor属性

button.layer.borderColor = [UIColor orangeColor].CGColor;


给button设置阴影

// 设置阴影 横坐标向右 纵坐标向下 可负值

button.layer.shadowOffset = CGSizeMake(1, 1);

同时设置button上有文字和图片,并且同时实现点击效果

// 在UIButton中有三个对EdgeInsets的设置:ContentEdgeInsets、titleEdgeInsets、imageEdgeInsets

[button setImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal];//给button添加image

//设置image在button上的位置(上top,左left,下bottom,右right)这里可以写负值,对上写-10,那么image就象上移动10个像素

button.imageEdgeInsets = UIEdgeInsetsMake(5,13,21,button.titleLabel.bounds.size.width);


button如果设置了图片的情况下 还有一个酷炫的点击效果

button.showsTouchWhenHighlighted = YES;

以上适合于IOS初学者对于button的使用,button的一些常用主流实现功能以及常见的需求逻辑
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: