zoukankan      html  css  js  c++  java
  • 给按钮增加点击效果

    一般我们如果要给按钮增加一个点击效果 ,最常见的方式是通过设置背景图片

    即调用 

    - (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state

    然后按钮就会根据state的状态去设置按钮的背景

    现在提供一个新的方式 ,可以解决不用设置图片 ,也不需要引用第三方的开源代码就可以完成

    已编写成分类(Category),具体代码

    //
    //  UIButton+PKAdditions.h//
    //  Created by pk on 14/12/16.
    //  Copyright (c) 2014年 suma. All rights reserved.
    //
    
    #import <UIKit/UIKit.h>
    
    @interface UIButton (PKAdditions)
    
    - (void)addClickEffectWithColor:(UIColor *)color;
    
    @end
    //
    //  UIButton+PKAdditions.m
    //
    //  Created by pk on 14/12/16.
    //  Copyright (c) 2014年 suma. All rights reserved.
    //
    
    #import "UIButton+PKAdditions.h"
    
    @implementation UIButton (PKAdditions)
    
    - (void)addClickEffectWithColor:(UIColor *)color
    {
        if (color) {
            CGSize imageSize = self.frame.size;
            UIGraphicsBeginImageContextWithOptions(imageSize, 0, [UIScreen mainScreen].scale);
            [color set];
            UIRectFill(CGRectMake(0, 0, imageSize.width, imageSize.height));
            UIImage *pressedColorImg = UIGraphicsGetImageFromCurrentImageContext();
            UIGraphicsEndImageContext();
            self.layer.masksToBounds = YES;
            self.opaque = NO;
            [self setBackgroundImage:pressedColorImg forState:UIControlStateNormal];
        }
        
    }
    
    @end

    使用方式

        UIButton * tenderBtn = [[UIButton alloc] initWithFrame:CGRectMake(150, 180, 150, 50)];
    [tenderBtn setTitle:@"效 果" forState:UIControlStateNormal];
        [tenderBtn addClickEffectWithColor:[UIColor grayColor]];
        tenderBtn.layer.cornerRadius = 10.0f;
        [self addSubview:tenderBtn];

    实际效果:

  • 相关阅读:
    基于前后端分离的身份认证方式——JWT
    java远程文件操作
    BZOJ3181: [Coci2012]BROJ
    回归本源--位运算及其应用
    BZOJ 1226: [SDOI2009]学校食堂Dining
    BZOJ2734: [HNOI2012]集合选数
    BZOJ2064: 分裂
    BZOJ2679: [Usaco2012 Open]Balanced Cow Subsets
    OI队内测试——石门一
    Codeforces Round #376 (Div. 2)
  • 原文地址:https://www.cnblogs.com/tianlin106/p/4178785.html
Copyright © 2011-2022 走看看