zoukankan      html  css  js  c++  java
  • 想制作纯色的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样式.
     
  • 相关阅读:
    JS-鼠标经过显示二级菜单
    CSS-论css如何纯代码实现内凹圆角
    JS-制作可伸缩的水平菜单栏
    CSS-混合布局的几种方法(正确的方法和错误的原因)
    JS-选项卡制作解释部分
    JS-制作网页特效——选项卡效果(水平,点击)
    JS-DOM 综合练习-动态添加删除班级成绩表
    JS-DOM对象知识点汇总(慕课)
    JS-window对象集合
    JS-节点属性(常用!)
  • 原文地址:https://www.cnblogs.com/xclidongbo/p/4096238.html
Copyright © 2011-2022 走看看