想制作纯色的UIButton吗? 来,哥教你~

因为项目要做到美观,加上扁平化设计这么流行,所以各种找资料.

原本想找找UIButton是否有直接的设置方法,却发现没有.找到点击后高亮也只有setBackgroundImage 这条路走了.
首先写一个能改变大小,颜色,返回值为image的类方法.(我在网上找的...)
+ (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size {

    CGRect rect = CGRectMake(0, 0, size.width, size.height);

    UIGraphicsBeginImageContext(rect.size);

    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetFillColorWithColor(context, [color CGColor]);

    CGContextFillRect(context, rect);

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return image;

}

好吧,以下是我写的,与君分享:

+ (instancetype)buttonWithTitleAndColor:(NSString *)title frame:(CGRect)frame
{
//必须是UIButtonTypeCustom,否则设置高亮不起作用
    UIButton * btn = [UIButton buttonWithType:UIButtonTypeCustom];
    [btn.layer setMasksToBounds:YES];
    [btn.layer setCornerRadius:4.0]; //设置矩形四个圆角半径
//    [btn.layer setBorderWidth:1.0]; //边框宽度
    btn.frame = frame;
    [btn setTitle:title forState:UIControlStateNormal];
    [btn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
//ButtonBgColor与ButtonTouchBgColor是两个UIColor颜色的宏定义,大家可以随意定义.例如[UIColor blueColor];
    UIImage * bgImage1 = [self imageWithColor:ButtonBgColor size:frame.size];
    UIImage * bgImage2 = [self imageWithColor:ButtonTouchBgColor size:frame.size];
    [btn setBackgroundImage:bgImage1 forState:UIControlStateNormal];
    [btn setBackgroundImage:bgImage2 forState:UIControlStateHighlighted];

    return btn;
}
大家也可以根据CAlayer的属性和方法,自定义喜欢的UIButton样式.
?
时间: 2024-10-10 20:55:53

想制作纯色的UIButton吗? 来,哥教你~的相关文章

js网站轮播图怎么做如何做?鸡哥教你简单制作效果炫酷

日了狗啦,刚刚鸡哥辛苦码了那么多字全丢了又要重新写,这是第二遍写了...今天鸡哥给小白写个不需要写js原生代码,只需要几个插件和一段通俗易懂得jquery代码就能搞定的轮播图,当然js原生代码写着也不算很繁琐,但是有些浪费时间,更何况很多人并不会用js直接写包括鸡哥,当年在学校还是研究过一段时间js的,当时还独自写了一个轮播图俘获了多少同班妹子的芳心,不过现在是基本废了,这东西要常写,不然忘的很快. 唉,本来还有妹子等着鸡哥呢,我这一大意文章丢了,重新写的话估计来不及了,先打个电话让妹子回家吧~

寒哥教你学iOS - 经验漫谈

http://www.jianshu.com/p/cb54054d3add 寒哥教你学iOS - 经验漫谈 字数2848 阅读1896 评论19 喜欢43 顺便来个广告 iOS开发者 群173499350 给大家提供一个交流技术 也可以聊天打屁的平台 本篇文章主要讲解 4个问题 load妙用 aop面向切面编程 NSNumber Or Int @()适配64位 1 让appDelegate 减少负担 经过漫长时间的学习 你终于掌握了iOS大法 你找到了份iOS开发的工作 信誓旦旦的要开始你的co

远哥教你MuleESB系列视频教程

远哥教你MuleESB系列视频课程介绍(共11个视频) ?1.Mule ESB介绍 ?2.社区版/企业版的区别和安装 ?3.MuleESB快速入门,以及MEL和Message结构 ?4.官方例子讲解 ?(JMS/FTP/Database/Smtp/MQ/RAML/APIkit等) ?5.在MuleESB中消费另一个WS服务的几种方式 ?6.在MuleESB中使用事物控制(Transactional) ?7.Java Components的使用 ?8.Java Transformers/DataM

肖哥教你解决安装和运行eNSP过程中遇到的各种问题

华为ensp 目前不是很稳定,肖哥现将在使用ensp过程中遇到的问题总结如下: 使用ENSP注意事项: ① 建议安装ensp时,安装目录不要出现中文. ② 关闭杀毒软件(尤其是电脑管家)和防火墙. ③ 管理员的用户名不要出现中文. ④ 在BIOS中将CPU 虚拟化功能(VT.virtual) 打开,否则会运行的很卡. 一:软件预览及下载 这是我使用的ENSP版本. 这是ENSP软件下载链接 华为ensp 模拟器V380: 链接:https://yunpan.cn/cY6YxZni2EYRx  密

Caffe系列2——制作LMDB数据详细过程(手把手教你制作LMDB)

制作LMDB详细教程 摘要: 当我们在使用Caffe做深度学习项目时,经常需要制作Caffe常用的数据类型lmdb.leveldb以及hdf5等(尽管可以使用原始图片,效率低),而不是我们常见的JPG.PNG.TIF.因此,我们需要对我们采集的数据进行格式转换,即通过输入我们自己的图片目录(包含有训练集和验证集的大量图片)转换成一个lmdb库文件的输出:这个过程一般是有Caffe工具中的convert_imageset,该工具在编译过的Caffe中,具体位置是:D:\你的caffe根目录\caf

超哥教你发布CRM

发布CRM你将使用以下软件 nginx uWSGI CentOS7 CRM项目文件 virtualenv supervisor WSGI.uWSGI python web服务器开发使用WSGI协议(Web Server Gateway Interface) python web项目默认会生成一个wsgi.py文件,确定好应用模块. 生产环境中使用的是uWSGI,实现了WSGI所有接口,C语言编写,效率很高的web服务器. uWSGI是一个全功能的HTTP服务器,实现了WSGI协议.uwsgi协议

兽哥教你sqlmap,sqlmap的安装及使用

首先,sqlmap是基于Python下的一款扫描注入环境 所以  首先得下载好 python 和 sqlmap Python 于百度下载就可以了 那么sqlmap呢 去官网 http://sqlmap.org/ 都下载下来呢 先安装 python  记住!  !!! 这里有个坑!!!!!! 在选择组件的时候 往下拉  把未选择的 全部勾选! 不然的话需要配置环境变量 安装完后 crlt+r  调出运行框后 运行 cmd.exe  在命令提示符中输入 python 显示这个页面为python安装成

小明哥教你使用c++实现大数据之加减乘除以及模除运算

在c++中常用的数据类型有 char:1 bit,short 2 bit,int 4 bit,long long 8 bit等等,以上数据类型标识的数据大小非常有限,如果遇到大于他们能表示的范围时,计算结果就会有误,日常生活中的计算器也是如此,我国计算两个比较大的数的运算,也会出现错误,或者不能正常显示, 例如计算123456789123456789*987654321987654321 计算结果如下: 为了解决上述问题,我写了一个计算大数据四则运算以及求模的小项目,实现的功能有 + - * /

哥教你读 字母

Αα:阿尔法 AlphaΒβ:贝塔 BetaΓγ:伽玛 GammaΔδ:德尔塔 DelteΕε:艾普西龙 Epsilonζ :捷塔 ZetaΖη:依塔 EtaΘθ:西塔 ThetaΙι:艾欧塔 IotaΚκ:喀帕 Kappa∧λ:拉姆达 LambdaΜμ:缪 MuΝν:拗 NuΞξ:克西 XiΟο:欧麦克轮 Omicron∏π:派 PiΡρ:柔 Rho∑σ:西格玛 SigmaΤτ:套 TauΥυ:宇普西龙 UpsilonΦφ:fai PhiΧχ:器 ChiΨψ:普赛 PsiΩω:欧米伽 Omeg