zoukankan      html  css  js  c++  java
  • 纯代码实现实现各种效果的圆角按钮。

    #import <UIKit/UIKit.h>
    
    @interface APRoundedButton : UIButton
    
    @property (nonatomic, assign) int style;
    
    @end
    //
    //  Created by Alberto Pasca on 27/02/14.
    //  Copyright (c) 2014 albertopasca.it. All rights reserved.
    //
    
    #import "APRoundedButton.h"
    #import <QuartzCore/QuartzCore.h>
    
    
    @implementation APRoundedButton
    
    - (void)awakeFromNib
    {
      [super awakeFromNib];
    
      UIRectCorner corners;
    
    
      switch ( self.style )
      {
        case 0:
          corners = UIRectCornerBottomLeft;
          break;
        case 1:
          corners = UIRectCornerBottomRight;
          break;
        case 2:
          corners = UIRectCornerTopLeft;
          break;
        case 3:
          corners = UIRectCornerTopRight;
          break;
        case 4:
          corners = UIRectCornerBottomLeft | UIRectCornerBottomRight;
          break;
        case 5:
          corners = UIRectCornerTopLeft | UIRectCornerTopRight;
          break;
        case 6:
          corners = UIRectCornerBottomLeft | UIRectCornerTopLeft;
          break;
        case 7:
          corners = UIRectCornerBottomRight | UIRectCornerTopRight;
          break;
        case 8:
          corners = UIRectCornerBottomRight | UIRectCornerTopRight | UIRectCornerTopLeft;
          break;
        case 9:
          corners = UIRectCornerBottomRight | UIRectCornerTopRight | UIRectCornerBottomLeft;
          break;
        default:
          corners = UIRectCornerAllCorners;
          break;
      }
    
    
      UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.bounds
                                                     byRoundingCorners:corners
                                                           cornerRadii:CGSizeMake(20.0, 30.0)];
      CAShapeLayer *maskLayer = [CAShapeLayer layer];
      maskLayer.frame         = self.bounds;
      maskLayer.path          = maskPath.CGPath;
      self.layer.mask         = maskLayer;
    }
    
    
    @end
  • 相关阅读:
    CLR的黑暗面——栈与引用对象
    delegate的另类玩法
    一个比较bt的xslt
    关于string
    jQuery核心讲解
    Linux环境进程间通信(二):信号(上)
    ubuntu10.10 轻松安装 Nvidia 官方驱动
    Linux环境进程间通信(二): 信号(下)
    Linux 信号signal处理机制
    java.lang.ProcessBuilder类和java.lang.Process类
  • 原文地址:https://www.cnblogs.com/yunis/p/3909521.html
Copyright © 2011-2022 走看看