ios 圆角Button,代码实现可以实现不同角的不同弧度。

demo :http://code4app.com/ios/APRoundedButton/53bb90ba933bf020688b4d1e

 

UIEdgeInsets insets = UIEdgeInsetsMake(0, 8, 0, 8);

    UIImage *tempImage = [UIImageimageNamed:@"button_logout_bg"];

    tempImage = [tempImage resizableImageWithCapInsets:insets];

 

    [button setBackgroundImage:tempImage forState:UIControlStateNormal];

 

 

 

 

用法:myBtn = [[APRoundedButtonalloc]initWithFrame:CGRectMake(100, 100, 100, 60)];

    myBtn.style = 4;

    [myBtnsetBackgroundColor:[UIColorredColor]];

    [self.view addSubview:myBtn];

    [myBtnawakeFromNib];

 

 

然后再导入下面的一个文件就行了。。。。。。。设置具体的弧度大小可以进里面改。。。。

 

ornerRadii:CGSizeMake(10.0, 10.0)];/k控制弧度的大小。。。

 

 

 

 

 

 

 

 

#import <UIKit/UIKit.h>

 

@interface APRoundedButton : UIButton

 

@property (nonatomic, assign) int style;

 

 

@end

 

 

 

#import "APRoundedButton.h"

#import <QuartzCore/QuartzCore.h>

 

 

@implementation APRoundedButton

 

- (void)awakeFromNib

{

  [superawakeFromNib];

 

  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 = [UIBezierPathbezierPathWithRoundedRect:self.bounds

                                                 byRoundingCorners:corners

                                                       cornerRadii:CGSizeMake(10.0, 10.0)];

  CAShapeLayer *maskLayer = [CAShapeLayerlayer];

  maskLayer.frame         = self.bounds;

  maskLayer.path          = maskPath.CGPath;

  self.layer.mask         = maskLayer;

}

 

 

 

@end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值